fix:项目&学员管理改造支持社招新员工

This commit is contained in:
zxj
2025-11-13 14:50:16 +08:00
parent 09c4a6da80
commit ec03ab4427
9 changed files with 14520 additions and 671 deletions

View File

@@ -1,6 +1,5 @@
<template>
<div class="TableStudent">
<a-row
type="flex"
gutter="12"
@@ -48,6 +47,19 @@
</div>
</a-form-item>
</a-col>
<a-col v-if="isNewEmployee">
<a-form-item title="报名及HR审批结果">
<div class="select">
<a-select
v-model:value="tableParam.approvalResults"
style="width: 260px; height: 40px"
placeholder="报名及HR审批结果"
:options="hrAuditResultList"
allowClear
></a-select>
</div>
</a-form-item>
</a-col>
<a-col>
<a-button
class="cus-btn"
@@ -59,17 +71,21 @@
<img
style="margin-right: 10px"
src="../../assets/images/courseManage/search0.png"
/></template>
/></template>
搜索
</a-button>
</a-col>
<a-col :span="2">
<a-button class="cus-btn" style="width: 100px;background: #4ea6ff; color: #fff;" @click="reset">
<a-button
class="cus-btn"
style="width: 100px; background: #4ea6ff; color: #fff"
@click="reset"
>
<template #icon>
<img
style="margin-right: 10px"
src="../../assets/images/courseManage/reset0.png"
/></template>
/></template>
重置
</a-button>
</a-col>
@@ -90,9 +106,9 @@
>
<a-button class="cus-btn" style="background: #4ea6ff; color: #fff">
<template #icon
><img
style="margin-right: 10px"
src="../../assets/images/courseManage/add0.png"
><img
style="margin-right: 10px"
src="../../assets/images/courseManage/add0.png"
/></template>
添加学员
</a-button>
@@ -100,62 +116,101 @@
</a-col>
<!-- 新加导入学员 批量换组 导出学习信息 -->
<a-col :span="1.5" v-if="type === 1 || type === 2">
<a-button class="cus-btn" @click="showImpStu" style="background: #4ea6ff; color: #fff">
<a-button
class="cus-btn"
@click="showImpStu"
style="background: #4ea6ff; color: #fff"
>
<template #icon
><img
style="margin-right: 10px"
src="../../assets/images/basicinfo/in.png"
><img
style="margin-right: 10px"
src="../../assets/images/basicinfo/in.png"
/></template>
导入学员
</a-button>
</a-col>
<a-col :span="1.5" v-if="type === 1">
<a-button class="cus-btn" @click="showChangeGroupModal" style="background: #4ea6ff; color: #fff">
<a-button
class="cus-btn"
@click="showChangeGroupModal"
style="background: #4ea6ff; color: #fff"
>
批量换组
</a-button>
</a-col>
<a-col :span="1.5" v-if="type === 1">
<a-button class="cus-btn" @click="exportTaskStu" style="background: #4ea6ff; color: #fff">
<a-button
class="cus-btn"
@click="exportTaskStu"
style="background: #4ea6ff; color: #fff"
>
导出学习信息
</a-button>
</a-col>
<a-col :span="1.5" v-if="type === 2">
<a-button class="cus-btn" @click="exportTaskStuRouter" style="background: #4ea6ff; color: #fff">
<a-button
class="cus-btn"
@click="exportTaskStuRouter"
style="background: #4ea6ff; color: #fff"
>
导出学习信息
</a-button>
</a-col>
<a-col :span="1.5">
<a-button class="cus-btn" @click="bathDel" style="background: #4ea6ff; color: #fff">
<a-button
class="cus-btn"
@click="bathDel"
style="background: #4ea6ff; color: #fff"
>
<template #icon
><img
style="margin-right: 10px"
src="../../assets/images/projectadd/delete1.png"
><img
style="margin-right: 10px"
src="../../assets/images/projectadd/delete1.png"
/></template>
批量删除
</a-button>
</a-col>
<a-col :span="1.5" v-if="type === 2">
<a-button class="cus-btn" @click="showChangeModal" style="background: #4ea6ff; color: #fff">
<a-button
class="cus-btn"
@click="showChangeModal"
style="background: #4ea6ff; color: #fff"
>
<template #icon></template>
批量调整关卡
</a-button>
</a-col>
<!-- 新加批量操作导出导出作业 -->
<a-col :span="1.5" v-if="type === 3" class="batchOpera">
<div class="stmm_btn btn4" @click="hideShow" style="background: #4ea6ff">
<div
class="stmm_btn btn4"
@click="hideShow"
style="background: #4ea6ff"
>
<div class="btn4_sub">
<span style="color: #fff; margin-right: 4px;"> 批量操作 </span>
<span style="color: #fff; margin-right: 4px"> 批量操作 </span>
<div
class="b_zk"
:style="{ display: hideshow ? 'block' : 'none', color: '#fff', lineHeight: '9px', transform: 'rotate(180deg)'}"
>^
:style="{
display: hideshow ? 'block' : 'none',
color: '#fff',
lineHeight: '9px',
transform: 'rotate(180deg)',
}"
>
^
</div>
<div
class="b_sq"
:style="{ display: hideshow ? 'none' : 'block', color: '#fff', lineHeight: '12px'}"
>^
:style="{
display: hideshow ? 'none' : 'block',
color: '#fff',
lineHeight: '12px',
}"
>
^
</div>
</div>
<div
@@ -178,13 +233,17 @@
</div>
</div>
</div>
<div class="stmm_btn btn5" @click="exportStu" style="background: #4ea6ff; color: #fff;">
<div
class="stmm_btn btn5"
@click="exportStu"
style="background: #4ea6ff; color: #fff"
>
<div class="export"></div>
<div class="btnText">导出</div>
</div>
<div
class="stmm_btn btn5"
style="margin-left: 15px;background: #4ea6ff; color: #fff;"
style="margin-left: 15px; background: #4ea6ff; color: #fff"
@click="exportHomeWorkShow"
>
<div class="btnText">导出作业</div>
@@ -192,7 +251,7 @@
<div
class="stmm_btn btn5"
style="margin-left: 15px;background: #4ea6ff; color: #fff;"
style="margin-left: 15px; background: #4ea6ff; color: #fff"
@click="handleUpdateScore"
>
<div class="btnText">刷新</div>
@@ -230,17 +289,26 @@
<slot name="extension" v-bind:data="{ record }"></slot>
<a-button
v-if="type === 3 && record.status !== 2 && record.status !== 0 && checkPer(permissions)"
v-if="
type === 3 &&
record.status !== 2 &&
record.status !== 0 &&
checkPer(permissions)
"
@click="auditStatus(0, record.id)"
type="link"
>通过
</a-button
>
>通过
</a-button>
<a-button
v-if="type === 3 && record.status !== 2 && record.status !== 0 && checkPer(permissions)"
v-if="
type === 3 &&
record.status !== 2 &&
record.status !== 0 &&
checkPer(permissions)
"
@click="auditStatus(2, record.id)"
type="link"
>拒绝
>拒绝
</a-button>
<a-button
v-if="checkPer(permissions)"
@@ -248,7 +316,7 @@
@click="del(record.id, record)"
type="link"
danger
>删除
>删除
</a-button>
</a-space>
</template>
@@ -451,7 +519,11 @@ const props = defineProps({
remarksTrue: {
type: Boolean,
default: false,
}
},
isNewEmployee: {
type: Boolean,
default: false,
},
});
const { loading: stuAsyncLoading, start } = useAsyncStu(props.id, props.type, getStuList);
@@ -469,6 +541,29 @@ const topFlagList = ref([
},
]);
const hrAuditResultList = ref([
{
id: 1,
value: 1,
label: "报名失败",
},
{
id: 2,
value: 2,
label: "审核中",
},
{
id: 3,
value: 3,
label: "审核通过",
},
{
id: 4,
value: 4,
label: "审核不通过",
},
]);
const tablecolumns = ref([
{
title: "姓名",
@@ -535,9 +630,9 @@ const tablecolumns = ref([
key: "source",
width: "60px",
align: "center",
customRender: ({ record: { source } }) =>
customRender: ({ record }) =>{
// ({ 1: "快速添加", 2: "组织", 3: "受众", 4: "报名" }[source]),
({
return ({
0: "导入",
1: "手动加入",
2: "手动加入",
@@ -546,14 +641,54 @@ const tablecolumns = ref([
5: "自主报名",
6: "导入",
8: "扫码报名",
}[source]),
9: "自主报名"
}[record.source])
}
},
{
title: "HR审批结果",
dataIndex: "approvalResults",
key: "approvalResults",
width: "60px",
align: "center",
customRender: ({ record: { hrAuditResult } }) =>
({
1: "报名失败",
2: "审核中",
3: "审核通过",
4: "审核不通过",
}[hrAuditResult]),
},
{
title: "必修课进度",
dataIndex: "required",
key: "required",
width: "60px",
align: "center",
customRender: ({ record }) => (
<div>
{ record.requiredFinishTaskNum}/{ record.requiredTotalTaskNum}
</div>
),
},
{
title: "选修课进度",
dataIndex: "elective",
key: "elective",
width: "60px",
align: "center",
customRender: ({ record }) => (
<div>
{ record.electiveFinishTaskNum}/{ record.electiveTotalTaskNum}
</div>
),
},
...props.columns,
{
title: "操作",
dataIndex: "operation",
key: "operation",
width: '120px',
width: '220px',
fixed: "right",
align: "center",
slots: { customRender: "action" },
@@ -696,6 +831,7 @@ function reset() {
tableParam.value.studentDepartId = null; //部门
tableParam.value.studentDepartName = null; //部门
tableParam.value.topFlag = null; //是否是优秀学员
tableParam.value.hrAuditResult = null; //报名及HR审批结果
getStuList();
}
@@ -1041,8 +1177,8 @@ defineExpose({ getStuList, startLoading });
width: calc(100%);
height: 40px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
@@ -1175,8 +1311,8 @@ defineExpose({ getStuList, startLoading });
width: calc(100%);
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}