mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-07 09:56:44 +08:00
Merge remote-tracking branch 'yx/250605-added-yzt' into test20250220
This commit is contained in:
@@ -48,4 +48,39 @@ export const professionalPageList = (obj) => http.post('/reportsnake/report/getP
|
||||
//所有模块总数
|
||||
export const reportAllTotal = (obj) => http.post('/reportsnake/report/getReportAllTotal', obj);
|
||||
// 专业力列表
|
||||
export const boeuGrowthPlatePageList = (obj) => http.post('/boeu/grow/pageList', obj)
|
||||
export const boeuGrowthPlatePageList = (obj) => http.post('/boeu/grow/pageList', obj)
|
||||
// 学员列表
|
||||
export const studentReportPageList = (obj) => http.post('/reportsnake/report/studentReportList', obj)
|
||||
|
||||
//项目任务表
|
||||
export const projectTaskReportList = (obj) => http.post('/reportsnake/report/projectTaskReportList', obj)
|
||||
//项目学员表
|
||||
export const projectStudentReportList = (obj) => http.post('/reportsnake/report/projectStudentReportList', obj)
|
||||
|
||||
//学习路径关卡表
|
||||
export const routerChapterReportList = (obj) => http.post('/reportsnake/report/routerChapterReportList', obj)
|
||||
//学习路径任务报告列表
|
||||
export const routerTaskReportList = (obj) => http.post('/reportsnake/report/routerTaskReportList', obj)
|
||||
//学习路径学员报告列表
|
||||
export const routerStudentReportList = (obj) => http.post('/reportsnake/report/routerStudentReportList', obj)
|
||||
|
||||
//面授讲师报告列表
|
||||
export const offCourseTeacherReportList = (obj) => http.post('/reportsnake/report/offCourseTeacherReportList', obj)
|
||||
//面授学员报告列表
|
||||
export const offCourseStudentReportList = (obj) => http.post('/reportsnake/report/offCourseStudentReportList', obj)
|
||||
|
||||
//在线课课件报告列表
|
||||
export const onlineCourseContentReportList = (obj) => http.post('/reportsnake/report/onlineCourseContentReportList', obj)
|
||||
//在线课学员报告列表
|
||||
export const onlineCourseStudentReportList = (obj) => http.post('/reportsnake/report/onlineCourseStudentReportList', obj)
|
||||
|
||||
//考试学员报告列表
|
||||
export const examTestStudentReportList = (obj) => http.post('/reportsnake/report/examTestStudentReportList', obj)
|
||||
|
||||
//案例作者报告列表
|
||||
export const caseAuthorReportList = (obj) => http.post('/reportsnake/report/caseAuthorReportList', obj)
|
||||
|
||||
//专业力任务报告列表
|
||||
export const professionalTaskReportList = (obj) => http.post('/reportsnake/report/professionalTaskReportList', obj)
|
||||
//专业力学员报告列表
|
||||
export const professionalStudentReportList = (obj) => http.post('/reportsnake/report/professionalStudentReportList', obj)
|
||||
|
||||
117
src/components/common/TableColSet.vue
Normal file
117
src/components/common/TableColSet.vue
Normal file
@@ -0,0 +1,117 @@
|
||||
<template>
|
||||
<a-tooltip title="列设置">
|
||||
<a-dropdown :placement="props.placement" v-model:visible="visible" :trigger="['click']">
|
||||
<a-button type="primary">列设置</a-button>
|
||||
<template #overlay>
|
||||
<div style="z-index: 9999;background: #fff;padding: 10px;">
|
||||
<div style="display: flex;justify-content: space-between;align-items: center;">
|
||||
<div>
|
||||
<a-checkbox
|
||||
v-model:checked="state.checkAll"
|
||||
:indeterminate="state.indeterminate"
|
||||
@change="onCheckAllChange"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<a-button type="link" @click="colReset">重置</a-button>
|
||||
</div>
|
||||
</div>
|
||||
<a-divider style="margin-top: 5px;margin-bottom: 10px;"/>
|
||||
<div>
|
||||
<a-checkbox-group v-model:value="state.checkedList" style="width: 100%">
|
||||
<draggable
|
||||
:list="props.columns"
|
||||
ghost-class="ghost"
|
||||
chosen-class="chosenClass"
|
||||
animation="300"
|
||||
@start="onStart"
|
||||
@end="onEnd"
|
||||
>
|
||||
<template #item="{ element }">
|
||||
<div class="item">
|
||||
<a-checkbox :value="element.key"> {{ element.title }}</a-checkbox>
|
||||
</div>
|
||||
</template>
|
||||
</draggable>
|
||||
</a-checkbox-group>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
</a-dropdown>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, reactive, watch, onMounted } from 'vue';
|
||||
import draggable from 'vuedraggable';
|
||||
const visible = ref(false);
|
||||
const props = defineProps({
|
||||
columns: {
|
||||
type: Array,
|
||||
default: [],
|
||||
},
|
||||
placement: {
|
||||
type: String,
|
||||
default: 'bottom'
|
||||
}
|
||||
})
|
||||
const state = reactive({
|
||||
indeterminate: false,
|
||||
checkAll: false,
|
||||
checkedList: [],
|
||||
});
|
||||
onMounted(() => {
|
||||
let keys = props.columns.map(function(item){
|
||||
if(item.visible){
|
||||
return item.key
|
||||
}
|
||||
});
|
||||
state.checkedList = keys;
|
||||
if(keys.length>0){
|
||||
state.indeterminate = true;
|
||||
}
|
||||
if(keys.length===props.columns.length){
|
||||
state.indeterminate = false;
|
||||
state.checkAll = true;
|
||||
}
|
||||
})
|
||||
watch(() => state.checkedList, val => {
|
||||
state.indeterminate = !!val.length && val.length < props.columns.length;
|
||||
state.checkAll = val.length === props.columns.length;
|
||||
props.columns.map(function(item){
|
||||
if(state.checkedList.includes(item.key)){
|
||||
item.visible = true;
|
||||
}else{
|
||||
item.visible = false;
|
||||
}
|
||||
})
|
||||
});
|
||||
const colReset = () => {
|
||||
props.columns.sort((a, b) => a.colSortNo - b.colSortNo);
|
||||
props.columns.map(function(item){
|
||||
item.visible = true;
|
||||
})
|
||||
let keys = props.columns.map(function(item){
|
||||
return item.key
|
||||
})
|
||||
state.checkedList = keys;
|
||||
state.indeterminate = false;
|
||||
state.checkAll = true;
|
||||
}
|
||||
//拖拽开始的事件
|
||||
const onStart = () => {
|
||||
console.log("开始拖拽");
|
||||
};
|
||||
|
||||
//拖拽结束的事件
|
||||
const onEnd = () => {
|
||||
console.log("结束拖拽");
|
||||
}
|
||||
|
||||
const onCheckAllChange = (e) => {
|
||||
Object.assign(state, {
|
||||
checkedList: e.target.checked ? props.columns.map(function(item) {return item.key}) : [],
|
||||
indeterminate: false,
|
||||
});
|
||||
};
|
||||
</script>
|
||||
@@ -47,15 +47,14 @@
|
||||
</a-input>
|
||||
</div>
|
||||
<div class="select">
|
||||
<a-select
|
||||
ref="select"
|
||||
<a-input
|
||||
style="width: 100%; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入岗位名称"
|
||||
v-model:value="studentJobName"
|
||||
allowClear
|
||||
v-model:value="valueCourseType"
|
||||
style="width: 100%"
|
||||
:options="optionsCourseType"
|
||||
placeholder="有无授课次数"
|
||||
@change="handleCourseTypeChange"
|
||||
></a-select>
|
||||
showSearch
|
||||
>
|
||||
</a-input>
|
||||
</div>
|
||||
<div class="select">
|
||||
<!-- <a-input
|
||||
@@ -89,33 +88,75 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 以下为导出按钮 -->
|
||||
<div class="btnzs">
|
||||
<div class="btnz btnz3" @click="exportAllbtnz" style="margin-right: 20px">
|
||||
<div>
|
||||
<img src="../../assets/images/coursewareManage/export1.png" alt="" />
|
||||
<div style="display: flex;justify-content: space-between;">
|
||||
<div class="btnzs">
|
||||
<div class="btnz btnz3" @click="exportAllbtnz" style="margin-right: 20px">
|
||||
<div>
|
||||
<img src="../../assets/images/coursewareManage/export1.png" alt="" />
|
||||
</div>
|
||||
<div class="btnzText">导出全部</div>
|
||||
</div>
|
||||
<div class="btnz btnz3" @click="exportbtnz" style="margin-right: 20px">
|
||||
<div>
|
||||
<img src="../../assets/images/coursewareManage/export1.png" alt="" />
|
||||
</div>
|
||||
<div class="btnzText">导出</div>
|
||||
</div>
|
||||
<div class="btnzText">导出全部</div>
|
||||
</div>
|
||||
<div class="btnz btnz3" @click="exportbtnz">
|
||||
<div>
|
||||
<img src="../../assets/images/coursewareManage/export1.png" alt="" />
|
||||
</div>
|
||||
<div class="btnzText">导出</div>
|
||||
<div class="btnz btnz3" style="margin-right: 38px;">
|
||||
<!-- <TableColSet v-model:columns="columns" v-model:placement="left"/> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 以下为table表格 -->
|
||||
<div class="tableBox">
|
||||
<a-table
|
||||
:columns="columns"
|
||||
:columns="columns.filter(n => n.visible==true)"
|
||||
:data-source="tableData"
|
||||
:loading="tableLoading"
|
||||
:scroll="{ x: 700 }"
|
||||
:pagination="false"
|
||||
@change="handleTableChange"
|
||||
:row-selection="{
|
||||
selectedRowKeys: selectedRowKeys,
|
||||
onChange: onSelectChange,
|
||||
}"
|
||||
>
|
||||
<template v-slot:header>
|
||||
<draggable
|
||||
v-model="columns"
|
||||
item-key="key"
|
||||
:list="columns"
|
||||
:group="{ name: 'columns', pull: 'clone', put: false }"
|
||||
>
|
||||
<template #item="{ element }">
|
||||
<a-table-column :title="element.title" :dataIndex="element.dataIndex" :key="element.key"></a-table-column>
|
||||
</template>
|
||||
</draggable>
|
||||
</template>
|
||||
<template #bodyCell="{ record, column }">
|
||||
<template v-if="column.key === 'projectCompletedNum'">
|
||||
<div style="color: #02a7f0; cursor: pointer;" @click="openModal(record.studentId,1)">{{ record.projectCompletedNum }}</div>
|
||||
</template>
|
||||
<template v-if="column.key === 'routerCompletedNum'">
|
||||
<div style="color: #02a7f0; cursor: pointer;" @click="openModal(record.studentId,2)">{{ record.routerCompletedNum }}</div>
|
||||
</template>
|
||||
<template v-if="column.key === 'offCourseCompletedNum'">
|
||||
<div style="color: #02a7f0; cursor: pointer;" @click="openModal(record.studentId,3)">{{ record.offCourseCompletedNum }}</div>
|
||||
</template>
|
||||
<template v-if="column.key === 'onlineCompletedNum'">
|
||||
<div style="color: #02a7f0; cursor: pointer;" @click="openModal(record.studentId,4)">{{ record.onlineCompletedNum }}</div>
|
||||
</template>
|
||||
<template v-if="column.key === 'examCompletedNum'">
|
||||
<div style="color: #02a7f0; cursor: pointer;" @click="openModal(record.studentId,5)">{{ record.examCompletedNum }}</div>
|
||||
</template>
|
||||
<template v-if="column.key === 'caseViewsNum'">
|
||||
<div style="color: #02a7f0; cursor: pointer;" @click="openModal(record.studentId,6)">{{ record.caseViewsNum }}</div>
|
||||
</template>
|
||||
<template v-if="column.key === 'professionalCompeletedNum'">
|
||||
<div style="color: #02a7f0; cursor: pointer;" @click="openModal(record.studentId,7)">{{ record.professionalCompeletedNum }}</div>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
<div class="tableBox">
|
||||
<div class="pa">
|
||||
@@ -133,6 +174,13 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<EmployeelearningModal
|
||||
v-if='isModalVisible'
|
||||
v-model:isModalVisible="isModalVisible"
|
||||
v-model:modalType="modalType"
|
||||
v-model:studentId="currentStudentId"
|
||||
/>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script lang="jsx">
|
||||
@@ -143,8 +191,16 @@ import Cookies from "vue-cookies";
|
||||
import axios from "axios";
|
||||
import downLoad from "../../utils/downLoad";
|
||||
import { useStore } from "vuex";
|
||||
import draggable from 'vuedraggable';
|
||||
import EmployeelearningModal from './EmployeelearningModal.vue';
|
||||
import TableColSet from '../../components/common/TableColSet.vue';
|
||||
export default {
|
||||
name: "EmployeelearninG",
|
||||
components: {
|
||||
EmployeelearningModal: EmployeelearningModal,
|
||||
draggable:draggable,
|
||||
TableColSet:TableColSet
|
||||
},
|
||||
setup() {
|
||||
const store = useStore();
|
||||
const state = reactive({
|
||||
@@ -162,7 +218,7 @@ export default {
|
||||
allowClear:true,
|
||||
resetOrgId:[],
|
||||
valueBand: null,
|
||||
valueCourseType: null,
|
||||
studentJobName: null,
|
||||
optionsBand:[
|
||||
{value: 'Band1',label: 'Band1',},
|
||||
{value: 'Band2',label: 'Band2',},
|
||||
@@ -195,6 +251,10 @@ export default {
|
||||
label: '否',
|
||||
},
|
||||
],
|
||||
isModalVisible:false,
|
||||
currentStudentId:null,
|
||||
modalType:null,
|
||||
tableSorts:[]
|
||||
});
|
||||
|
||||
const focusBand = () => {
|
||||
@@ -207,7 +267,7 @@ export default {
|
||||
};
|
||||
const handleCourseTypeChange = (value) => {
|
||||
console.log(`selected handleCourseTypeChange ${value}`);
|
||||
state.valueCourseType = value;
|
||||
state.studentJobName = value;
|
||||
};
|
||||
// table选中
|
||||
const onSelectChange = (selectedRowKeys, record) => {
|
||||
@@ -273,132 +333,238 @@ export default {
|
||||
};
|
||||
// 表格数据
|
||||
let tableData = ref([]);
|
||||
// cloumns 表头
|
||||
// cloumns 表头 colSortNo:列默认排序号
|
||||
const columns = ref([
|
||||
{
|
||||
title: "工号",
|
||||
dataIndex: "userNo",
|
||||
key: "userNo",
|
||||
dataIndex: "studentUserNo",
|
||||
key: "studentUserNo",
|
||||
width: 120,
|
||||
ellipsis: true,
|
||||
align: "center",
|
||||
colSortNo: 1,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "姓名",
|
||||
dataIndex: "userName",
|
||||
dataIndex: "studentName",
|
||||
ellipsis: true,
|
||||
key: "userName",
|
||||
key: "studentName",
|
||||
width: 120,
|
||||
align: "center",
|
||||
sorter: true,
|
||||
colSortNo: 2,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "所属组织",
|
||||
dataIndex: "orgName",
|
||||
title: "归属组织",
|
||||
dataIndex: "studentOrgName",
|
||||
ellipsis: true,
|
||||
key: "orgName",
|
||||
key: "studentOrgName",
|
||||
width: 120,
|
||||
align: "center",
|
||||
sorter: true,
|
||||
colSortNo: 3,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "岗位",
|
||||
dataIndex: "positionName",
|
||||
title: "所诉岗位",
|
||||
dataIndex: "studentJobName",
|
||||
ellipsis: true,
|
||||
key: "positionName",
|
||||
key: "studentJobName",
|
||||
width: 120,
|
||||
align: "center",
|
||||
sorter: true,
|
||||
colSortNo: 4,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "Band",
|
||||
dataIndex: "bandCode",
|
||||
title: "所在Band",
|
||||
dataIndex: "bandInfo",
|
||||
ellipsis: true,
|
||||
key: "bandCode",
|
||||
key: "bandInfo",
|
||||
width: 120,
|
||||
align: "center",
|
||||
sorter: true,
|
||||
colSortNo: 5,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "授课次数",
|
||||
dataIndex: "teachingTimes",
|
||||
title: "项目完成数",
|
||||
dataIndex: "projectCompletedNum",
|
||||
ellipsis: true,
|
||||
key: "teachingTotal",
|
||||
key: "projectCompletedNum",
|
||||
width: 120,
|
||||
align: "center",
|
||||
colSortNo: 6,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "授课时长",
|
||||
dataIndex: "teachingDuration",
|
||||
title: "项目完成率",
|
||||
dataIndex: "projectCompletedRate",
|
||||
ellipsis: true,
|
||||
key: "teachingDuration",
|
||||
key: "projectCompletedRate",
|
||||
width: 120,
|
||||
align: "center",
|
||||
sorter: true,
|
||||
colSortNo: 7,
|
||||
visible: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";},
|
||||
},
|
||||
{
|
||||
title: "案例创建",
|
||||
dataIndex: "cases",
|
||||
title: "学习路径完成关卡数",
|
||||
dataIndex: "routerCompletedNum",
|
||||
ellipsis: true,
|
||||
key: "cases",
|
||||
key: "routerCompletedNum",
|
||||
width: 180,
|
||||
align: "center",
|
||||
colSortNo: 8,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "学习路径完成率",
|
||||
dataIndex: "routerCompletedRate",
|
||||
ellipsis: true,
|
||||
key: "routerCompletedRate",
|
||||
width: 160,
|
||||
align: "center",
|
||||
colSortNo: 9,
|
||||
visible: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{
|
||||
title: "面授完成数",
|
||||
dataIndex: "offCourseCompletedNum",
|
||||
ellipsis: true,
|
||||
key: "offCourseCompletedNum",
|
||||
width: 120,
|
||||
align: "center",
|
||||
colSortNo: 10,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "课程学习",
|
||||
dataIndex: "courseStudy",
|
||||
title: "面授完成率",
|
||||
dataIndex: "offCourseCompletedRate",
|
||||
ellipsis: true,
|
||||
key: "courseStudy",
|
||||
key: "offCourseCompletedRate",
|
||||
width: 120,
|
||||
align: "center",
|
||||
colSortNo: 11,
|
||||
visible: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{
|
||||
title: "项目学习",
|
||||
dataIndex: "projectStudy",
|
||||
title: "在线课完成数",
|
||||
dataIndex: "onlineCompletedNum",
|
||||
ellipsis: true,
|
||||
key: "projectStudy",
|
||||
key: "onlineCompletedNum",
|
||||
width: 130,
|
||||
align: "center",
|
||||
colSortNo: 12,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "在线课学习总时长",
|
||||
dataIndex: "onlineCompletedDuration",
|
||||
ellipsis: true,
|
||||
key: "onlineCompletedDuration",
|
||||
width: 160,
|
||||
align: "center",
|
||||
colSortNo: 13,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "考试完成数",
|
||||
dataIndex: "examCompletedNum",
|
||||
ellipsis: true,
|
||||
key: "examCompletedNum",
|
||||
width: 120,
|
||||
align: "center",
|
||||
colSortNo: 14,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "路径图学习",
|
||||
dataIndex: "routerStudy",
|
||||
title: "考试及格数",
|
||||
dataIndex: "examPassNum",
|
||||
ellipsis: true,
|
||||
key: "routerStudy",
|
||||
key: "examPassNum",
|
||||
width: 120,
|
||||
align: "center",
|
||||
colSortNo: 15,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "专业力学习",
|
||||
dataIndex: "growthStudy",
|
||||
title: "考试及格率",
|
||||
dataIndex: "examPassRate",
|
||||
ellipsis: true,
|
||||
key: "growthStudy",
|
||||
key: "examPassRate",
|
||||
width: 120,
|
||||
align: "center",
|
||||
colSortNo: 16,
|
||||
visible: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{
|
||||
title: "学习时长",
|
||||
dataIndex: "learningDuration",
|
||||
title: "案例贡献数",
|
||||
dataIndex: "caseNum",
|
||||
ellipsis: true,
|
||||
key: "learningDuration",
|
||||
key: "caseNum",
|
||||
width: 120,
|
||||
align: "center",
|
||||
colSortNo: 17,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "操作",
|
||||
dataIndex: "operation",
|
||||
key: "operation",
|
||||
width: 150,
|
||||
title: "案例浏览数",
|
||||
dataIndex: "caseViewsNum",
|
||||
ellipsis: true,
|
||||
key: "caseViewsNum",
|
||||
width: 120,
|
||||
align: "center",
|
||||
fixed: "right",
|
||||
customRender: (record) => {
|
||||
return (
|
||||
<a
|
||||
key="export"
|
||||
onClick={() => {
|
||||
oneExport(record);
|
||||
}}
|
||||
>
|
||||
导出详细信息
|
||||
</a>
|
||||
);
|
||||
},
|
||||
colSortNo: 18,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "专业力必修完成数",
|
||||
dataIndex: "professionalCompeletedNum",
|
||||
ellipsis: true,
|
||||
key: "professionalCompeletedNum",
|
||||
width: 180,
|
||||
align: "center",
|
||||
colSortNo: 19,
|
||||
visible: true,
|
||||
},
|
||||
{
|
||||
title: "专业力必修完成率",
|
||||
dataIndex: "professionalCompletedRate",
|
||||
ellipsis: true,
|
||||
key: "professionalCompletedRate",
|
||||
width: 180,
|
||||
align: "center",
|
||||
colSortNo: 20,
|
||||
visible: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
// {
|
||||
// title: "操作",
|
||||
// dataIndex: "operation",
|
||||
// key: "operation",
|
||||
// width: 150,
|
||||
// align: "center",
|
||||
// fixed: "right",
|
||||
// customRender: (record) => {
|
||||
// return (
|
||||
// <a
|
||||
// key="export"
|
||||
// onClick={() => {
|
||||
// oneExport(record);
|
||||
// }}
|
||||
// >
|
||||
// 导出详细信息
|
||||
// </a>
|
||||
// );
|
||||
// },
|
||||
// },
|
||||
]);
|
||||
// 行内单条下载
|
||||
const oneExport = (record) => {
|
||||
@@ -422,14 +588,15 @@ export default {
|
||||
// 获取数据
|
||||
const getTableData = async () => {
|
||||
state.tableLoading = true;
|
||||
const res = await api.boeuStudyDataPageList({
|
||||
const res = await api.studentReportPageList({
|
||||
page: state.pageNo,
|
||||
size: state.pageSize,
|
||||
userNo: state.userNo,
|
||||
name: state.name,
|
||||
departmentId: state.orgId ? state.orgId[state.orgId.length - 1] : null,
|
||||
orgId: state.orgId,
|
||||
bandCode: state.valueBand,
|
||||
hasTeach: state.valueCourseType,
|
||||
jobName: state.studentJobName,
|
||||
tableSorts: state.tableSorts
|
||||
});
|
||||
if (res) {
|
||||
state.tableDataTotal = res.data.result.total;
|
||||
@@ -450,11 +617,17 @@ export default {
|
||||
state.band = "";
|
||||
state.userNo = "";
|
||||
state.valueBand = null;
|
||||
state.valueCourseType = null;
|
||||
state.studentJobName = null;
|
||||
state.orgId = state.resetOrgId;
|
||||
getTableData();
|
||||
};
|
||||
|
||||
const openModal = (studentId, modalType) =>{
|
||||
state.currentStudentId = studentId;
|
||||
state.modalType = modalType;
|
||||
state.isModalVisible = true;
|
||||
}
|
||||
|
||||
// 导出全部按钮
|
||||
const exportAllbtnz = async () => {
|
||||
axios({
|
||||
@@ -463,9 +636,9 @@ export default {
|
||||
data: {
|
||||
userNo: state.userNo,
|
||||
name: state.name,
|
||||
departmentId: state.orgId ? state.orgId[state.orgId.length - 1] : null,
|
||||
orgId: state.orgId,
|
||||
bandCode: state.valueBand,
|
||||
hasTeach: state.valueCourseType,
|
||||
jobName: state.studentJobName,
|
||||
},
|
||||
responseType: "blob",
|
||||
headers: {
|
||||
@@ -475,9 +648,49 @@ export default {
|
||||
downLoad(res.data, "学习员工数据.xlsx");
|
||||
});
|
||||
};
|
||||
|
||||
// 表格 change 事件(分页、排序等)
|
||||
const handleTableChange = (pag, filters, sorter) => {
|
||||
const {field, order} = sorter;
|
||||
if (order) {
|
||||
state.tableSorts = [{
|
||||
sortField: field,
|
||||
sortOrder: order === 'ascend' ? 'asc' : order === 'descend' ? 'desc' : null,
|
||||
}];
|
||||
} else {
|
||||
state.tableSorts = [];
|
||||
}
|
||||
getTableData();
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getOrgList();
|
||||
state.tableLoading = true;
|
||||
//getOrgList();
|
||||
//state.tableLoading = true;
|
||||
|
||||
tableData.value = [{
|
||||
id: '1',
|
||||
studentId:'111111111',
|
||||
studentUserNo: '123344',
|
||||
studentName: '姓名',
|
||||
studentOrgName: '机构',
|
||||
studentJobName: '岗位',
|
||||
bandInfo:'band',
|
||||
projectCompletedNum:12,
|
||||
projectCompletedRate:50,
|
||||
routerCompletedNum:20,
|
||||
routerCompletedRate:12,
|
||||
offCourseCompletedNum:12,
|
||||
offCourseCompletedRate:12,
|
||||
onlineCompletedNum:12,
|
||||
onlineCompletedDuration:12,
|
||||
examCompletedNum:8,
|
||||
examPassNum:22,
|
||||
examPassRate:90,
|
||||
caseNum:2,
|
||||
caseViewsNum:22,
|
||||
professionalCompeletedNum:22,
|
||||
professionalCompletedRate:22,
|
||||
}]
|
||||
});
|
||||
return {
|
||||
focusBand,
|
||||
@@ -492,6 +705,8 @@ export default {
|
||||
tableData,
|
||||
columns,
|
||||
changePagination,
|
||||
openModal,
|
||||
handleTableChange
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
337
src/views/report/EmployeelearningModal.vue
Normal file
337
src/views/report/EmployeelearningModal.vue
Normal file
@@ -0,0 +1,337 @@
|
||||
<template>
|
||||
<a-modal
|
||||
class="custom-modal"
|
||||
:title="modelTitle"
|
||||
:visible="props.isModalVisible"
|
||||
@cancel="onCancel"
|
||||
@ok="onCancel"
|
||||
width="1250px"
|
||||
>
|
||||
<a-table
|
||||
rowKey="id"
|
||||
:columns="modelColumns"
|
||||
:data-source="data.dataSource"
|
||||
:scroll="{ x: 400 }"
|
||||
:pagination="false"
|
||||
class="custom-table"
|
||||
:loading="data.tableLoading"
|
||||
:rowKey="id"
|
||||
>
|
||||
<!-- :loading="tableLoading"-->
|
||||
<template v-slot:header>
|
||||
<draggable
|
||||
v-model="modelColumns"
|
||||
item-key="key"
|
||||
:list="modelColumns"
|
||||
:group="{ name: 'columns', pull: 'clone', put: false }"
|
||||
>
|
||||
<template #item="{ element }">
|
||||
<a-table-column class="draggable-column" :title="element.title" :dataIndex="element.dataIndex" :key="element.key"></a-table-column>
|
||||
</template>
|
||||
</draggable>
|
||||
</template>
|
||||
</a-table>
|
||||
<div class="tableBox">
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="data.pageSize"
|
||||
v-model:current="data.pageNo"
|
||||
:total="data.total"
|
||||
class="pagination"
|
||||
@change="modelChangePagination"
|
||||
rowKey="id"
|
||||
:show-total="total => `共 ${total} 条`"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</template>
|
||||
<script setup>
|
||||
import { reactive,ref,onMounted } from "vue";
|
||||
import draggable from 'vuedraggable';
|
||||
import * as api from "../../api/indexOvervoew";
|
||||
const props = defineProps({
|
||||
isModalVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
modalType:{
|
||||
type:Number,
|
||||
default: 1,
|
||||
},
|
||||
studentId:{
|
||||
type:String,
|
||||
default:''
|
||||
}
|
||||
})
|
||||
const modelColumns = ref([])
|
||||
const modelTitle = ref('')
|
||||
const data = reactive({
|
||||
pageSize: 10,
|
||||
pageNo: 1,
|
||||
total: 0,
|
||||
dataSource: [],
|
||||
tableLoading: false
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
getModelColumns();
|
||||
})
|
||||
|
||||
const getModelColumns = ()=>{
|
||||
if(props.modalType==1){
|
||||
modelTitle.value = '项目'
|
||||
modelColumns.value = [
|
||||
{title: "项目名称", dataIndex: "projectName", key: "projectName", ellipsis: true, align: "center",},
|
||||
{title: "归属组织", dataIndex: "sourceBelongFullName", key: "sourceBelongFullName", ellipsis: true, align: "center",},
|
||||
{title: "总任务数", dataIndex: "taskCount", key: "taskCount", ellipsis: true, align: "center",},
|
||||
{title: "完成任务数", dataIndex: "taskCompletedNum", key: "taskCompletedNum", ellipsis: true, align: "center",},
|
||||
{title: "总任务数完成率", dataIndex: "taskCompletedRate", key: "taskCompletedRate", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "必修项目数", dataIndex: "bxCount", key: "bxCount", ellipsis: true, align: "center",},
|
||||
{title: "必修项目完成率", dataIndex: "bxCompletedRate", key: "bxCompletedRate", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
]
|
||||
data.dataSource = [{
|
||||
id:'2222',
|
||||
projectName:'项目名称',
|
||||
sourceBelongFullName:'归属组织',
|
||||
taskCount: 12,
|
||||
taskCompletedNum: 10,
|
||||
taskCompletedRate: 70,
|
||||
bxCount: 8,
|
||||
bxCompletedRate: 80,
|
||||
}]
|
||||
}else if(props.modalType==2){
|
||||
modelTitle.value = '学习路径'
|
||||
modelColumns.value = [
|
||||
{title: "路径名称", dataIndex: "routerName", key: "routerName", ellipsis: true, align: "center",},
|
||||
{title: "归属组织", dataIndex: "orgFullName", key: "orgFullName", ellipsis: true, align: "center",},
|
||||
{title: "关卡数", dataIndex: "chapterNum", key: "chapterNum", ellipsis: true, align: "center",},
|
||||
{title: "任务数", dataIndex: "taskCount", key: "taskCount", ellipsis: true, align: "center",},
|
||||
{title: "任务完成数", dataIndex: "taskCompletedNum", key: "taskCompletedNum", ellipsis: true, align: "center",},
|
||||
{title: "任务完成率", dataIndex: "taskCompletedRate", key: "taskCompletedRate", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "必修任务数", dataIndex: "taskRequiredNum", key: "taskRequiredNum", ellipsis: true, align: "center",},
|
||||
{title: "必修任务完成率", dataIndex: "taskRequiredCompletedRate", key: "taskRequiredCompletedRate", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
]
|
||||
data.dataSource = [{
|
||||
id:'2222',
|
||||
routerName:'路径名称',
|
||||
orgFullName:'归属组织',
|
||||
chapterNum: 30,
|
||||
taskCount: 12,
|
||||
taskCompletedNum: 10,
|
||||
taskCompletedRate: 70,
|
||||
taskRequiredNum: 8,
|
||||
taskRequiredCompletedRate: 80,
|
||||
}]
|
||||
}else if(props.modalType==3){
|
||||
modelTitle.value = '面授'
|
||||
modelColumns.value = [
|
||||
{title: "面授名称", dataIndex: "offcourseName", key: "offcourseName", ellipsis: true, align: "center",},
|
||||
{title: "归属组织", dataIndex: "sourceBelongFullName", key: "sourceBelongFullName", ellipsis: true, align: "center",},
|
||||
{title: "参与时间", dataIndex: "signUpTime", key: "signUpTime", ellipsis: true, align: "center",},
|
||||
{title: "完成状态", dataIndex: "completedStatus", key: "completedStatus", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return text.value && text.value == 1?'已结业':"未结业";}
|
||||
},
|
||||
]
|
||||
data.dataSource = [{
|
||||
id:'2222',
|
||||
offcourseName:'面授名称',
|
||||
sourceBelongFullName:'归属组织',
|
||||
signUpTime: '2025-03-10 10:00:00',
|
||||
completedStatus: 1,
|
||||
}]
|
||||
}else if(props.modalType==4){
|
||||
modelTitle.value = '在线课程'
|
||||
modelColumns.value = [
|
||||
{title: "在线课名称", dataIndex: "courseName", key: "courseName", ellipsis: true, align: "center",},
|
||||
{title: "归属组织", dataIndex: "sourceBelongFullName", key: "sourceBelongFullName", ellipsis: true, align: "center",},
|
||||
{title: "学习时间", dataIndex: "studyTime", key: "studyTime", ellipsis: true, align: "center",},
|
||||
{title: "学习时长", dataIndex: "studyDuration", key: "studyDuration", ellipsis: true, align: "center",},
|
||||
{title: "累计学习课件数", dataIndex: "coursewareCount", key: "coursewareCount", ellipsis: true, align: "center",},
|
||||
{title: "完成状态", dataIndex: "completedStatus", key: "completedStatus", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return text.value && text.value == 1?'已完成':"未完成";}
|
||||
},
|
||||
]
|
||||
data.dataSource = [{
|
||||
id:'2222',
|
||||
courseName:'课程名称',
|
||||
sourceBelongFullName:'归属组织',
|
||||
studyTime: '2025-03-10 10:00:00',
|
||||
studyDuration: 30,
|
||||
coursewareCount: 12,
|
||||
completedStatus: 0,
|
||||
}]
|
||||
}else if(props.modalType==5){
|
||||
modelTitle.value = '考试'
|
||||
modelColumns.value = [
|
||||
{title: "考试名称", dataIndex: "testName", key: "testName", ellipsis: true, align: "center",},
|
||||
{title: "考试时间", dataIndex: "examTime", key: "examTime", ellipsis: true, align: "center",},
|
||||
{title: "题量", dataIndex: "questionCount", key: "questionCount", ellipsis: true, align: "center",},
|
||||
{title: "满分", dataIndex: "totalScore", key: "totalScore", ellipsis: true, align: "center",},
|
||||
{title: "及格分", dataIndex: "passLine", key: "passLine", ellipsis: true, align: "center",},
|
||||
{title: "参考时间", dataIndex: "takeExamTime", key: "takeExamTime", ellipsis: true, align: "center",},
|
||||
{title: "成绩", dataIndex: "score", key: "score", ellipsis: true, align: "center",},
|
||||
{title: "部门排名", dataIndex: "deptSortNum", key: "deptSortNum", ellipsis: true, align: "center",},
|
||||
]
|
||||
data.dataSource = [{
|
||||
id:'2222',
|
||||
testName:'考试名称',
|
||||
examTime: '2025-03-10 10:00:00',
|
||||
questionCount: 100,
|
||||
totalScore: 100,
|
||||
passLine: 60,
|
||||
takeExamTime: '2025-03-10 10:00:00',
|
||||
score: 80,
|
||||
deptSortNum: 20
|
||||
}]
|
||||
}else if(props.modalType==6){
|
||||
modelTitle.value = '案例'
|
||||
modelColumns.value = [
|
||||
{title: "案例标题", dataIndex: "caseName", key: "caseName", ellipsis: true, align: "center",},
|
||||
{title: "案例作者", dataIndex: "authorName", key: "authorName", ellipsis: true, align: "center",},
|
||||
{title: "创建时间", dataIndex: "caseCreateTime", key: "caseCreateTime", ellipsis: true, align: "center",},
|
||||
{title: "浏览时间", dataIndex: "viewTime", key: "viewTime", ellipsis: true, align: "center",},
|
||||
{title: "是否点赞", dataIndex: "isPraises", key: "isPraises", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return text.value && text.value == 1?'是':"否";}
|
||||
},
|
||||
{title: "是否评论", dataIndex: "isComments", key: "isComments", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return text.value && text.value == 1?'是':"否";}
|
||||
},
|
||||
{title: "是否收藏", dataIndex: "isFavorites", key: "isFavorites", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return text.value && text.value == 1?'是':"否";}
|
||||
},
|
||||
]
|
||||
data.dataSource = [{
|
||||
id:'2222',
|
||||
caseName:'案例名称',
|
||||
authorName:'作者',
|
||||
caseCreateTime: '2025-03-10 10:00:00',
|
||||
viewTime: '2025-03-16 10:00:00',
|
||||
isPraises: 1,
|
||||
isComments: 0,
|
||||
isFavorites: 1,
|
||||
}]
|
||||
}else if(props.modalType==7){
|
||||
modelTitle.value = '专业力'
|
||||
modelColumns.value = [
|
||||
{title: "岗位名称", dataIndex: "stdPositionName", key: "stdPositionName", ellipsis: true, align: "center",},
|
||||
{title: "资格等级", dataIndex: "qualsLevelName", key: "qualsLevelName", ellipsis: true, align: "center",},
|
||||
{title: "band", dataIndex: "bandInfo", key: "bandInfo", ellipsis: true, align: "center",},
|
||||
{title: "任务总数", dataIndex: "totalTaskNum", key: "totalTaskNum", ellipsis: true, align: "center",},
|
||||
{title: "必修总数", dataIndex: "requiredTaskNum", key: "requiredTaskNum", ellipsis: true, align: "center",},
|
||||
{title: "完成总任务数", dataIndex: "completedTaskNum", key: "completedTaskNum", ellipsis: true, align: "center",},
|
||||
{title: "总任务完成率", dataIndex: "learnCompletedRate", key: "learnCompletedRate", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "完成必修任务数", dataIndex: "requiredTaskCompletedNum", key: "requiredTaskCompletedNum", ellipsis: true, align: "center",},
|
||||
{title: "必修任务完成率", dataIndex: "requiredTaskCompletedRate", key: "requiredTaskCompletedRate", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "总完成状态", dataIndex: "completedStatus", key: "completedStatus", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return text.value && text.value == 1?'已完成':"未完成";}
|
||||
},
|
||||
]
|
||||
data.dataSource = [{
|
||||
id:'2222',
|
||||
stdPositionName:'岗位名称',
|
||||
qualsLevelName:'资格等级',
|
||||
bandInfo:'band',
|
||||
totalTaskNum: 20,
|
||||
requiredTaskNum: 16,
|
||||
completedTaskNum: 12,
|
||||
learnCompletedRate: 70,
|
||||
requiredTaskCompletedNum: 10,
|
||||
requiredTaskCompletedRate: 70,
|
||||
completedStatus: 0,
|
||||
}]
|
||||
}
|
||||
}
|
||||
|
||||
const getTableData = async () => {
|
||||
data.tableLoading = true;
|
||||
const res = await api.boeuStudyDataPageList({
|
||||
page: data.pageNo,
|
||||
size: data.pageSize,
|
||||
studentId: studentId
|
||||
});
|
||||
data.dataSource = res.data.result.rows || [];
|
||||
state.tableLoading = false;
|
||||
};
|
||||
|
||||
const emit = defineEmits({})
|
||||
const onCancel = ()=>{
|
||||
emit("update:isModalVisible", false);
|
||||
}
|
||||
// 监听弹出层分页变化方法
|
||||
const modelChangePagination = (page) =>{
|
||||
data.pageNo = page;
|
||||
getTableData();
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.tableBox {
|
||||
margin: 20px 20px 20px;
|
||||
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: #eff4fc;
|
||||
}
|
||||
}
|
||||
.tableBox {
|
||||
.pa {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.custom-modal {
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.custom-modal :deep(.ant-modal-header) {
|
||||
background: #1890ff;
|
||||
color: white;
|
||||
border-radius: 8px 8px 0 0;
|
||||
}
|
||||
|
||||
.custom-modal :deep(.ant-modal-title) {
|
||||
color: white;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.custom-modal :deep(.ant-modal-close-x) {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.custom-modal :deep(.ant-modal-footer) {
|
||||
border-top: 1px solid #f0f0f0;
|
||||
padding: 16px 24px;
|
||||
}
|
||||
.custom-table {
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.custom-table :deep(.ant-table-thead > tr > th) {
|
||||
background-color: #fafafa;
|
||||
font-weight: 500;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.custom-table :deep(.ant-table-tbody > tr:hover > td) {
|
||||
background: #e6f7ff !important;
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
520
src/views/report/OvervoewnewModal.vue
Normal file
520
src/views/report/OvervoewnewModal.vue
Normal file
@@ -0,0 +1,520 @@
|
||||
<template>
|
||||
<a-modal
|
||||
class="custom-modal"
|
||||
:title="modelTitle"
|
||||
:visible="props.isModalVisible"
|
||||
@cancel="onCancel"
|
||||
@ok="onCancel"
|
||||
width="1250px"
|
||||
>
|
||||
<a-table
|
||||
rowKey="id"
|
||||
:columns="modelColumns"
|
||||
:data-source="data.dataSource"
|
||||
:scroll="{ x: 400 }"
|
||||
:pagination="false"
|
||||
class="custom-table"
|
||||
:loading="data.tableLoading"
|
||||
:rowKey="id"
|
||||
>
|
||||
<!-- :loading="tableLoading"-->
|
||||
<template v-slot:header>
|
||||
<draggable
|
||||
v-model="modelColumns"
|
||||
item-key="key"
|
||||
:list="modelColumns"
|
||||
:group="{ name: 'columns', pull: 'clone', put: false }"
|
||||
>
|
||||
<template #item="{ element }">
|
||||
<a-table-column class="draggable-column" :title="element.title" :dataIndex="element.dataIndex" :key="element.key"></a-table-column>
|
||||
</template>
|
||||
</draggable>
|
||||
</template>
|
||||
</a-table>
|
||||
<div class="tableBox">
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="data.pageSize"
|
||||
v-model:current="data.pageNo"
|
||||
:total="data.total"
|
||||
class="pagination"
|
||||
@change="modelChangePagination"
|
||||
rowKey="id"
|
||||
:show-total="total => `共 ${total} 条`"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</template>
|
||||
<script setup>
|
||||
import { reactive,ref,onMounted } from "vue";
|
||||
import draggable from 'vuedraggable';
|
||||
import * as api from "../../api/indexOvervoew";
|
||||
const props = defineProps({
|
||||
isModalVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
reportType: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
secondReportType: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
currentId: {
|
||||
type: String,
|
||||
default: '-1'
|
||||
},
|
||||
})
|
||||
const modelColumns = ref([])
|
||||
const modelTitle = ref('')
|
||||
const data = reactive({
|
||||
pageSize: 10,
|
||||
pageNo: 1,
|
||||
total: 0,
|
||||
dataSource: [],
|
||||
tableLoading: false
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
getModelColumns();
|
||||
})
|
||||
|
||||
const getModelColumns = ()=>{
|
||||
//项目
|
||||
if(props.reportType=='project'){
|
||||
if(props.secondReportType=='student'){
|
||||
modelTitle.value = '人员'
|
||||
modelColumns.value = [
|
||||
{title: "工号", dataIndex: "studentUserNo",key: "studentUserNo",width: 120,ellipsis: true,},
|
||||
{title: "姓名",dataIndex: "studentName",key: "studentName",width: 120,ellipsis: true,},
|
||||
{title: "率属组织",dataIndex: "studentOrgName",key: "studentOrgName",width: 120,ellipsis: true,},
|
||||
{title: "所在岗位",dataIndex: "studentJobName",key: "studentJobName",width: 120,ellipsis: true,},
|
||||
{title: "所在band",dataIndex: "bandInfo",key: "bandInfo",width: 120,ellipsis: true,},
|
||||
{title: "完成进度",dataIndex: "completionProgress",key: "completionProgress",width: 120,ellipsis: true,},
|
||||
{title: "总任务完成率",dataIndex: "taskCompletedRate",key: "taskCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "必修完成率",dataIndex: "requiredTaskCompletedRate",key: "requiredTaskCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "课程完成率",dataIndex: "courseCompletedRate",key: "courseCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "考试通过率",dataIndex: "examPassRate",key: "examPassRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "作业完成率",dataIndex: "homeworkCompletedRate",key: "homeworkCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "最近学习时间",dataIndex: "latestStudyTime",key: "latestStudyTime",width: 120,ellipsis: true,},
|
||||
]
|
||||
}else if(props.secondReportType=='task'){
|
||||
modelTitle.value = '任务'
|
||||
modelColumns.value = [
|
||||
{title: "阶段名称",dataIndex: "stageName",key: "stageName",width: 120,ellipsis: true,},
|
||||
{title: "任务名称",dataIndex: "taskName",key: "taskName",width: 120,ellipsis: true,},
|
||||
{title: "是否必须",dataIndex: "isRequestTask",key: "isRequestTask",width: 120,ellipsis: true,},
|
||||
{title: "开始时间",dataIndex: "startTime",key: "startTime",width: 120,ellipsis: true,sorter: true,},
|
||||
{title: "学习人数",dataIndex: "totalParticipantNum",key: "totalParticipantNum",width: 120,ellipsis: true, sorter: true,},
|
||||
{title: "完成人数",dataIndex: "completedParticipantNum",key: "completedParticipantNum",width: 120,ellipsis: true,sorter: true,},
|
||||
{title: "进行中人数",dataIndex: "inProgressParticipantNum",key: "inProgressParticipantNum",width: 120,ellipsis: true,sorter: true,},
|
||||
{title: "未开始人数",dataIndex: "notStartedParticipantNum",key: "notStartedParticipantNum",width: 120,ellipsis: true,sorter: true,},
|
||||
{title: "任务完成率",dataIndex: "taskCompletedRate",key: "taskCompletedRate",width: 120,ellipsis: true,sorter: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
}
|
||||
]
|
||||
}
|
||||
}else if(props.reportType=='router'){
|
||||
if(props.secondReportType=='chapter'){
|
||||
modelTitle.value = '关卡'
|
||||
modelColumns.value = [
|
||||
{title: "关卡名称", dataIndex: "chapterName",key: "chapterName",width: 120,ellipsis: true,},
|
||||
{title: "关卡任务总数",dataIndex: "chapterTaskNum",key: "chapterTaskNum",width: 120,ellipsis: true,},
|
||||
{title: "必修任务数",dataIndex: "requireTaskNum",key: "requireTaskNum",width: 120,ellipsis: true,},
|
||||
{title: "选修任务数",dataIndex: "electiveTaskNum",key: "electiveTaskNum",width: 120,ellipsis: true,},
|
||||
{title: "课程完成率",dataIndex: "courseCompletedRate",key: "courseCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "考试通过率",dataIndex: "examPassRate",key: "examPassRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "作业完成率",dataIndex: "homeworkCompletedRate",key: "homeworkCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
]
|
||||
}else if(props.secondReportType=='task'){
|
||||
modelTitle.value = '任务'
|
||||
modelColumns.value = [
|
||||
{title: "任务名称",dataIndex: "routerTaskName",key: "routerTaskName",width: 120,ellipsis: true,},
|
||||
{title: "所在关卡",dataIndex: "routerChapterName",key: "routerChapterName",width: 120,ellipsis: true,},
|
||||
{title: "是否必修",dataIndex: "isRequire",key: "isRequire",width: 120,ellipsis: true,sorter: true,
|
||||
customRender: (text) => {return text.value && text.value == 1?'是':"否";}
|
||||
},
|
||||
{title: "开始时间",dataIndex: "startTime",key: "startTime",width: 120,ellipsis: true, sorter: true,},
|
||||
{title: "学习人数",dataIndex: "totalParticipantNum",key: "totalParticipantNum",width: 120,ellipsis: true,sorter: true,},
|
||||
{title: "完成人数",dataIndex: "completedParticipantNum",key: "completedParticipantNum",width: 120,ellipsis: true,sorter: true,},
|
||||
{title: "进行中人数",dataIndex: "inProgressParticipantNum",key: "inProgressParticipantNum",width: 120,ellipsis: true,sorter: true,},
|
||||
{title: "未开始人数",dataIndex: "notStartedParticipantNum",key: "notStartedParticipantNum",width: 120,ellipsis: true,sorter: true,}
|
||||
]
|
||||
}else if(props.secondReportType=='student'){
|
||||
modelTitle.value = '人员'
|
||||
modelColumns.value = [
|
||||
{title: "工号", dataIndex: "studentUserNo",key: "studentUserNo",width: 120,ellipsis: true,},
|
||||
{title: "姓名",dataIndex: "studentName",key: "studentName",width: 120,ellipsis: true,},
|
||||
{title: "率属组织",dataIndex: "studentOrgName",key: "studentOrgName",width: 120,ellipsis: true,},
|
||||
{title: "所在岗位",dataIndex: "studentJobName",key: "studentJobName",width: 120,ellipsis: true,},
|
||||
{title: "所在band",dataIndex: "bandInfo",key: "bandInfo",width: 120,ellipsis: true,},
|
||||
{title: "报名方式",dataIndex: "signUpType",key: "signUpType",width: 120,ellipsis: true,
|
||||
customRender: (text) => {
|
||||
if(!text.value){
|
||||
return '-';
|
||||
}else if(text.value==0 || text.value==4 || text.value==6){
|
||||
return '导入';
|
||||
}else if(text.value==1 || text.value==2 || text.value==3){
|
||||
return '手动加入';
|
||||
}else if(text.value==5){
|
||||
return '自主报名';
|
||||
}else if(text.value==8){
|
||||
return '扫码报名';
|
||||
}else{
|
||||
return '-';
|
||||
}
|
||||
}
|
||||
},
|
||||
{title: "当前关卡",dataIndex: "currentChapter",key: "currentChapter",width: 120,ellipsis: true,},
|
||||
{title: "总任务完成率",dataIndex: "taskCompletedRate",key: "taskCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "必修任务完成率",dataIndex: "requiredTaskCompletedRate",key: "requiredTaskCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "课程完成率",dataIndex: "courseCompletedRate",key: "courseCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "考试通过率",dataIndex: "examPassRate",key: "examPassRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "作业完成率",dataIndex: "homeworkCompletedRate",key: "homeworkCompletedRate",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "最近学习时间",dataIndex: "latestStudyTime",key: "latestStudyTime",width: 120,ellipsis: true,},
|
||||
]
|
||||
}
|
||||
}else if(props.reportType=='offcourse'){
|
||||
if(props.secondReportType=='teacher'){
|
||||
modelTitle.value = '讲师'
|
||||
modelColumns.value = [
|
||||
{title: "开课次数", dataIndex: "totalCourseNum", key: "totalCourseNum", ellipsis: true, align: "center",},
|
||||
{title: "开课总时长", dataIndex: "totalDuration", key: "totalDuration", ellipsis: true, align: "center",},
|
||||
{title: "授课总人数", dataIndex: "studentNum", key: "studentNum", ellipsis: true, align: "center",},
|
||||
{title: "场均人数", dataIndex: "avgStudentNum", key: "avgStudentNum", ellipsis: true, align: "center",},
|
||||
{title: "平均评分", dataIndex: "avgScore", key: "avgScore", ellipsis: true, align: "center",},
|
||||
]
|
||||
}else if(props.secondReportType=='student'){
|
||||
modelTitle.value = '人员'
|
||||
modelColumns.value = [
|
||||
{title: "工号", dataIndex: "studentUserNo",key: "studentUserNo",width: 120,ellipsis: true,},
|
||||
{title: "姓名",dataIndex: "studentName",key: "studentName",width: 120,ellipsis: true,},
|
||||
{title: "率属组织",dataIndex: "studentOrgName",key: "studentOrgName",width: 120,ellipsis: true,},
|
||||
{title: "所在岗位",dataIndex: "studentJobName",key: "studentJobName",width: 120,ellipsis: true,},
|
||||
{title: "所在band",dataIndex: "bandInfo",key: "bandInfo",width: 120,ellipsis: true,},
|
||||
{title: "报名时间",dataIndex: "signUpTime",key: "signUpTime",width: 120,ellipsis: true,},
|
||||
{title: "签到时间",dataIndex: "signInTime",key: "signInTime",width: 120,ellipsis: true,},
|
||||
{title: "签到状态",dataIndex: "signStatus",key: "signStatus",width: 120,ellipsis: true,
|
||||
customRender: (text) => {
|
||||
if(!text.value){
|
||||
return '-';
|
||||
}else if(text.value==0){
|
||||
return '未签到';
|
||||
}else if(text.value==1){
|
||||
return '已签到';
|
||||
}else if(text.value==2){
|
||||
return '请假';
|
||||
}else{
|
||||
return '-';
|
||||
}
|
||||
}
|
||||
},
|
||||
{title: "作业状态",dataIndex: "workStatus",key: "workStatus",width: 120,ellipsis: true,sorter: true,
|
||||
customRender: (text) => {return text.value && text.value == 1?'已提交':"未提交";}
|
||||
},
|
||||
{title: "考试成绩",dataIndex: "examScore",key: "examScore",width: 120,ellipsis: true,},
|
||||
{title: "结业状态",dataIndex: "completedStatus",key: "completedStatus",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return text.value && text.value == 1?'已结业':"未结业";}
|
||||
},
|
||||
{title: "讲师评分",dataIndex: "teacherScore",key: "teacherScore",width: 120,ellipsis: true,},
|
||||
]
|
||||
}
|
||||
}else if(props.reportType=='online'){
|
||||
if(props.secondReportType=='content'){
|
||||
modelTitle.value = '课件'
|
||||
modelColumns.value = [
|
||||
{title: "课件名称", dataIndex: "contentName", key: "contentName", ellipsis: true, align: "center",},
|
||||
{title: "归属组织", dataIndex: "sourceBelongFullName", key: "sourceBelongFullName", ellipsis: true, align: "center",},
|
||||
{title: "课件时长", dataIndex: "duration", key: "duration", ellipsis: true, align: "center",},
|
||||
{title: "学习人数", dataIndex: "studyNum", key: "studyNum", ellipsis: true, align: "center",},
|
||||
{title: "完成人数", dataIndex: "completedNum", key: "completedNum", ellipsis: true, align: "center",},
|
||||
{title: "整体完成率", dataIndex: "completedRate", key: "completedRate", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "学习总时长", dataIndex: "studyDuration", key: "studyDuration", ellipsis: true, align: "center",},
|
||||
{title: "人均学习时长", dataIndex: "studyDurationAvg", key: "studyDurationAvg", ellipsis: true, align: "center",},
|
||||
{title: "创建时间", dataIndex: "createTime", key: "createTime", ellipsis: true, align: "center",},
|
||||
{title: "上传人", dataIndex: "uploadUserName", key: "uploadUserName", ellipsis: true, align: "center",},
|
||||
]
|
||||
}else if(props.secondReportType=='student'){
|
||||
modelTitle.value = '人员'
|
||||
modelColumns.value = [
|
||||
{title: "工号", dataIndex: "studentUserNo",key: "studentUserNo",width: 120,ellipsis: true,},
|
||||
{title: "姓名",dataIndex: "studentName",key: "studentName",width: 120,ellipsis: true,},
|
||||
{title: "率属组织",dataIndex: "studentOrgName",key: "studentOrgName",width: 120,ellipsis: true,},
|
||||
{title: "所在岗位",dataIndex: "studentJobName",key: "studentJobName",width: 120,ellipsis: true,},
|
||||
{title: "所在band",dataIndex: "bandInfo",key: "bandInfo",width: 120,ellipsis: true,},
|
||||
{title: "学习时长",dataIndex: "studyDuration",key: "studyDuration",width: 120,ellipsis: true,},
|
||||
{title: "学习进度",dataIndex: "studyProgress",key: "studyProgress",width: 120,ellipsis: true,
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "学习状态",dataIndex: "studyStatus",key: "studyStatus",width: 120,ellipsis: true,
|
||||
customRender: (text) => {
|
||||
if(!text.value){
|
||||
return '-';
|
||||
}else if(text.value==1){
|
||||
return '未开始学习';
|
||||
}else if(text.value==2){
|
||||
return '学习中';
|
||||
}else if(text.value==8){
|
||||
return '学习终止';
|
||||
}else if(text.value==9){
|
||||
return '学习完成';
|
||||
}else{
|
||||
return '-';
|
||||
}
|
||||
}
|
||||
},
|
||||
{title: "完成时间",dataIndex: "completedTime",key: "completedTime",width: 120,ellipsis: true,},
|
||||
{title: "最近学习时间",dataIndex: "latestStudyTime",key: "latestStudyTime",width: 120,ellipsis: true,},
|
||||
{title: "学习成绩",dataIndex: "studyScore",key: "studyScore",width: 120,ellipsis: true,},
|
||||
]
|
||||
}
|
||||
}else if(props.reportType=='exam'){
|
||||
if(props.secondReportType=='student'){
|
||||
modelTitle.value = '人员'
|
||||
modelColumns.value = [
|
||||
{title: "工号", dataIndex: "studentUserNo",key: "studentUserNo",width: 120,ellipsis: true,},
|
||||
{title: "姓名",dataIndex: "studentName",key: "studentName",width: 120,ellipsis: true,},
|
||||
{title: "率属组织",dataIndex: "studentOrgName",key: "studentOrgName",width: 120,ellipsis: true,},
|
||||
{title: "所在岗位",dataIndex: "studentJobName",key: "studentJobName",width: 120,ellipsis: true,},
|
||||
{title: "所在band",dataIndex: "bandInfo",key: "bandInfo",width: 120,ellipsis: true,},
|
||||
{title: "考试状态",dataIndex: "status",key: "status",width: 120,ellipsis: true,
|
||||
customRender: (text) => {
|
||||
if(!text.value){
|
||||
return '-';
|
||||
}else if(text.value==1){
|
||||
return '未开始学习';
|
||||
}else if(text.value==2){
|
||||
return '学习中';
|
||||
}else if(text.value==8){
|
||||
return '学习终止';
|
||||
}else if(text.value==9){
|
||||
return '学习完成';
|
||||
}else{
|
||||
return '-';
|
||||
}
|
||||
}
|
||||
},
|
||||
{title: "开考时间",dataIndex: "startTime",key: "startTime",width: 120,ellipsis: true,},
|
||||
{title: "交卷时间",dataIndex: "endTime",key: "endTime",width: 120,ellipsis: true,},
|
||||
{title: "答题时长",dataIndex: "duration",key: "duration",width: 120,ellipsis: true,},
|
||||
{title: "成绩",dataIndex: "score",key: "score",width: 120,ellipsis: true,},
|
||||
]
|
||||
}
|
||||
}else if(props.reportType=='case'){
|
||||
if(props.secondReportType=='author'){
|
||||
modelTitle.value = '作者'
|
||||
modelColumns.value = [
|
||||
{title: "案例名称", dataIndex: "caseName", key: "caseName", ellipsis: true, align: "center",},
|
||||
{title: "归属组织", dataIndex: "orgName", key: "orgName", ellipsis: true, align: "center",},
|
||||
{title: "专业分类", dataIndex: "caseSpecialtySequence", key: "caseSpecialtySequence", ellipsis: true, align: "center",},
|
||||
{title: "密级", dataIndex: "confidentialityLevel", key: "confidentialityLevel", ellipsis: true, align: "center",},
|
||||
{title: "浏览量", dataIndex: "viewNum", key: "viewNum", ellipsis: true, align: "center",},
|
||||
{title: "收藏数", dataIndex: "favoriteNum", key: "favoriteNum", ellipsis: true, align: "center",},
|
||||
{title: "点赞数", dataIndex: "likeNum", key: "likeNum", ellipsis: true, align: "center",},
|
||||
{title: "评论数", dataIndex: "commentNum", key: "commentNum", ellipsis: true, align: "center",},
|
||||
{title: "推荐数", dataIndex: "recommendNum", key: "recommendNum", ellipsis: true, align: "center",},
|
||||
]
|
||||
}
|
||||
}else if(props.reportType=='professional'){
|
||||
if(props.secondReportType=='task'){
|
||||
modelTitle.value = '任务'
|
||||
modelColumns.value = [
|
||||
{title: "任务名称", dataIndex: "taskName", key: "taskName", ellipsis: true, align: "center",},
|
||||
{title: "任务类型", dataIndex: "taskType", key: "taskType", ellipsis: true, align: "center",},
|
||||
{title: "必修/选修", dataIndex: "bxxx", key: "bxxx", ellipsis: true, align: "center",},
|
||||
{title: "学习人数", dataIndex: "studyNum", key: "studyNum", ellipsis: true, align: "center",},
|
||||
{title: "学习完成率", dataIndex: "studyCompletedRate", key: "studyCompletedRate", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "考试完成率", dataIndex: "examCompletedRate", key: "examCompletedRate", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
]
|
||||
}else if(props.secondReportType=='student'){
|
||||
modelTitle.value = '人员'
|
||||
modelColumns.value = [
|
||||
{title: "工号", dataIndex: "studentUserNo",key: "studentUserNo",width: 120,ellipsis: true,},
|
||||
{title: "姓名",dataIndex: "studentName",key: "studentName",width: 120,ellipsis: true,},
|
||||
{title: "率属组织",dataIndex: "studentOrgName",key: "studentOrgName",width: 120,ellipsis: true,},
|
||||
{title: "所在岗位",dataIndex: "studentJobName",key: "studentJobName",width: 120,ellipsis: true,},
|
||||
{title: "所在band",dataIndex: "bandInfo",key: "bandInfo",width: 120,ellipsis: true,},
|
||||
{title: "整体进度", dataIndex: "totalTaskProgress", key: "totalTaskProgress", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "必修进度", dataIndex: "requireTaskProgress", key: "requireTaskProgress", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "选修进度", dataIndex: "electiveTaskProgress", key: "electiveTaskProgress", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return !text.value && text.value != 0?'-':text.value + "%";}
|
||||
},
|
||||
{title: "完成状态", dataIndex: "completedStatus", key: "completedStatus", ellipsis: true, align: "center",
|
||||
customRender: (text) => {return text.value && text.value == 1?'已完成':"未完成";}
|
||||
},
|
||||
{title: "开始时间", dataIndex: "startTime", key: "startTime", ellipsis: true, align: "center",},
|
||||
{title: "完成时间", dataIndex: "completedTime", key: "completedTime", ellipsis: true, align: "center",},
|
||||
]
|
||||
|
||||
}
|
||||
}
|
||||
getTableData();
|
||||
}
|
||||
|
||||
const getTableData = async () => {
|
||||
data.tableLoading = true;
|
||||
if(props.reportType=='project' && props.secondReportType=='student'){
|
||||
const res = await api.projectStudentReportList({page: data.pageNo,size: data.pageSize,projectId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='project' && props.secondReportType=='task'){
|
||||
const res = await api.projectTaskReportList({page: data.pageNo,size: data.pageSize,projectId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='router' && props.secondReportType=='chapter'){
|
||||
const res = await api.routerChapterReportList({page: data.pageNo,size: data.pageSize,routerId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='router' && props.secondReportType=='student'){
|
||||
const res = await api.routerStudentReportList({page: data.pageNo,size: data.pageSize,routerId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='router' && props.secondReportType=='task'){
|
||||
const res = await api.routerTaskReportList({page: data.pageNo,size: data.pageSize,routerId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='offcourse' && props.secondReportType=='teacher'){
|
||||
const res = await api.offCourseTeacherReportList({page: data.pageNo,size: data.pageSize,offCourseId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='offcourse' && props.secondReportType=='student'){
|
||||
const res = await api.offCourseStudentReportList({page: data.pageNo,size: data.pageSize,offCourseId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='online' && props.secondReportType=='content'){
|
||||
const res = await api.onlineCourseContentReportList({page: data.pageNo,size: data.pageSize,courseId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='online' && props.secondReportType=='student'){
|
||||
const res = await api.onlineCourseStudentReportList({page: data.pageNo,size: data.pageSize,courseId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='exam' && props.secondReportType=='student'){
|
||||
const res = await api.examTestStudentReportList({page: data.pageNo,size: data.pageSize,testId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='case' && props.secondReportType=='author'){
|
||||
const res = await api.caseAuthorReportList({page: data.pageNo,size: data.pageSize,caseId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='professional' && props.secondReportType=='task'){
|
||||
const res = await api.professionalTaskReportList({page: data.pageNo,size: data.pageSize,growthId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}else if(props.reportType=='professional' && props.secondReportType=='student'){
|
||||
const res = await api.professionalStudentReportList({page: data.pageNo,size: data.pageSize,growthId: props.currentId});
|
||||
data.dataSource = res.data.records || [];
|
||||
data.total = res.data.total;
|
||||
}
|
||||
data.tableLoading = false;
|
||||
};
|
||||
|
||||
const emit = defineEmits({})
|
||||
const onCancel = ()=>{
|
||||
emit("update:isModalVisible", false);
|
||||
}
|
||||
// 监听弹出层分页变化方法
|
||||
const modelChangePagination = (page) =>{
|
||||
data.pageNo = page;
|
||||
console.log(data.pageNo)
|
||||
getTableData();
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.tableBox {
|
||||
margin: 20px 20px 20px;
|
||||
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: #eff4fc;
|
||||
}
|
||||
}
|
||||
.tableBox {
|
||||
.pa {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.custom-modal {
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.custom-modal :deep(.ant-modal-header) {
|
||||
background: #1890ff;
|
||||
color: white;
|
||||
border-radius: 8px 8px 0 0;
|
||||
}
|
||||
|
||||
.custom-modal :deep(.ant-modal-title) {
|
||||
color: white;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.custom-modal :deep(.ant-modal-close-x) {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.custom-modal :deep(.ant-modal-footer) {
|
||||
border-top: 1px solid #f0f0f0;
|
||||
padding: 16px 24px;
|
||||
}
|
||||
.custom-table {
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.custom-table :deep(.ant-table-thead > tr > th) {
|
||||
background-color: #fafafa;
|
||||
font-weight: 500;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.custom-table :deep(.ant-table-tbody > tr:hover > td) {
|
||||
background: #e6f7ff !important;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user