Files
fe-manage/src/components/growthpath/StudentManage.vue
2025-01-21 11:17:43 +08:00

1376 lines
31 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="TableStudent">
<a-row
type="flex"
gutter="12"
style="padding-left: 20px; margin-right: 0px"
>
<a-col>
<a-form-item title="部门:">
<div class="select in" style="width: 270px">
<OrgClass v-model:value="tableParam.studentDepartId"></OrgClass>
</div>
</a-form-item>
</a-col>
<a-col>
<a-form-item title="选择岗位" style="min-width: 170px">
<div class="select in">
<PostSelect
v-model:value="statusPost"
v-model:postList="statusPostMaps"
multiple="multiple"
>
</PostSelect>
</div>
</a-form-item>
</a-col>
<a-col>
<a-form-item title="选择职级" style="min-width: 170px">
<div class="select in">
<RankSelect
v-model:value="statusRanks"
v-model:rankList="statusRank"
></RankSelect>
</div>
</a-form-item>
</a-col>
<a-col>
<a-form-item title="加入方式" style="width: 193px">
<div class="select in">
<a-select
v-model:value="tableParam.source"
placeholder="请选择加入方式"
:options="statusValues"
@change="selectstatusValue"
allowClear
></a-select>
</div>
</a-form-item>
</a-col>
<a-col>
<a-form-item title="姓名:" style="width: 170px">
<a-input
class="cus-input"
v-model:value="tableParam.keyword"
placeholder="请输入姓名"
/>
</a-form-item>
</a-col>
<a-col>
<a-button
class="cus-btn"
style="background: #4ea6ff; color: #fff; margin-bottom: 10px"
@click="search"
:loading="stuAsyncLoading"
>
<template #icon>
<img
style="margin-right: 10px"
src="../../assets/images/courseManage/search0.png"
/></template>
搜索
</a-button>
</a-col>
<a-col :span="2">
<a-button
class="cus-btn"
style="
width: 100px;
background: #ffffff;
color: #578afc;
border: 1px solid #578afc;
margin-bottom: 10px;
"
@click="reset"
>
<template #icon>
<img
style="margin-right: 10px"
src="../../assets/images/growthpath/searchOut.png"
/></template>
重置
</a-button>
</a-col>
</a-row>
<a-row
type="flex"
gutter="12"
style="padding-left: 20px; margin-right: 0px; position: relative"
v-if="checkGrowthPer(permissions)"
>
<a-col :span="1.5">
<GrowthCommonStudent
:type="type"
:id="id"
@finash="submitCall"
:stage="stage"
:coulmsList="coulmsList"
:selectStu="true"
>
<a-button class="cus-btn" style="background: #4ea6ff; color: #fff">
<template #icon
><img
style="margin-right: 10px"
src="../../assets/images/courseManage/add0.png"
/></template>
添加学员
</a-button>
</GrowthCommonStudent>
</a-col>
<!-- 新加导入学员 批量换组 导出学习信息 -->
<a-col :span="1.5">
<a-button
class="cus-btn"
@click="showImpStu"
style="background: #ffffff; color: #578afc; border: 1px solid #578afc"
>
<template #icon
><img
style="margin-right: 10px"
src="../../assets/images/basicinfo/in2.png"
/></template>
导入学员
</a-button>
</a-col>
<a-col :span="1.5">
<a-button
class="cus-btn"
@click="bathDel"
style="background: #ffffff; color: #578afc; border: 1px solid #578afc"
>
<template #icon
><img
style="margin-right: 10px"
src="../../assets/images/projectadd/delete.png"
/></template>
批量删除
</a-button>
</a-col>
<a-col :span="1.5">
<a-button
class="cus-btn"
@click="exportTaskStu"
style="background: #ffffff; color: #578afc; border: 1px solid #578afc"
>
<template #icon
><img
style="margin-right: 10px"
src="../../assets/images/coursewareManage/export.png"
/></template>
导出学习信息
</a-button>
</a-col>
<a-col :span="1.5">
<a-button
class="cus-btn"
@click="showTexts"
style="background: #ffffff; color: #578afc; border: 1px solid #578afc"
>
<template #icon
><img
style="margin-right: 10px"
src="../../assets/images/projectadd/edit.png"
/></template>
报名记录
</a-button>
</a-col>
</a-row>
<div class="tips">
说明以下学员信息来自于员工发展认证管理系统如需调整学员请登录员工发展认证管理系统操作
</div>
<div style="margin-top: 20px; padding: 0 20px">
<a-table
:columns="tablecolumns"
:data-source="tableData.list"
:pagination="stuPagination"
:loading="tableData.loading"
:scroll="{ x: 1000 }"
row-key="sid"
:row-selection="stuRowSelection"
:row-class-name="getRowClass"
>
<template #studyNames="{ record }">
<div class="stuName">
<span class="name" :title="record.studentName">{{
record.studentName
}}</span>
<a-popover
v-if="record.moveStatus"
placement="right"
v-model:visible="visibleName[record.sid]"
class="popver"
trigger="click"
>
<template #content>
<div style="position: relative">
<img
style="margin: -40px 0 0 -44px"
src="@/assets/images/growthpath/namepag.png"
alt=""
/>
<div style="position: absolute; left: 21px; top: 16px">
<div>
改学员已被管理员{{
record.updateName || ""
}}添加至其他路径中
</div>
<div>添加时间{{ record.updateTime || "" }}</div>
</div>
<img
@click="visibleName[record.sid] = false"
style="
width: 26px;
height: 26px;
position: absolute;
top: -9px;
right: -4px;
"
src="@/assets/images/growthpath/out.png"
alt=""
/>
</div>
</template>
<div class="wen">?</div>
</a-popover>
</div>
</template>
<template #action="{ record }">
<div
@click="seeStudent(record)"
style="
color: #4ea6ff;
font-size: 14px;
text-align: center;
margin-left: 20px;
cursor: pointer;
"
>
查看
</div>
<a-button
v-if="checkGrowthPer(permissions)"
:disabled="record.isLeader === '1'"
@click="del(record.sid, record)"
type="link"
>删除
</a-button>
</template>
</a-table>
</div>
</div>
<!-- 查看学员 传入查看学员的id-->
<see-stu
v-model:Seevisible="Seevisible"
v-model:checkStuId="checkStuId"
v-model:projectId="projectId"
/>
<!-- 导入学员抽屉 -->
<!-- :courseId="projectTaskInfo.courseId"
:courseType="2" -->
<ImportStu
v-model:AddImpStuvisible="AddImpStuvisible"
@AddImpStuvisibleClose="AddImpStuvisibleClose"
:courseId="id"
:courseType="type"
/>
<!-- 删除弹窗 -->
<a-modal
v-model:visible="deleteModalVisible"
:footer="null"
wrapClassName="deleteModal1"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeSameModal"></div>
</div>
<div class="body">
<span>确定删除?</span>
<span style="margin-top: 20px">数据删除后不可恢复</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeSameModal">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="sureSameModal">
<div class="btnText">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<GrowShowText
:permissions="permissions"
@isSearchList="isSearchLists"
v-model:showText="showText"
/>
</template>
<script setup lang="jsx">
import { computed, defineProps, onMounted, ref, watch } from "vue";
import { delStudentList, getStuPage } from "@/api/index1";
import { getGrowStudent, delGrowStudent } from "@/api/growthpath";
import GrowthCommonStudent from "./GrowthCommonStudent";
import { message } from "ant-design-vue";
import SeeStu from "./StudentSeeStu";
import OrgClass from "@/components/growthpath/OrgClass";
import * as api from "../../api/index1";
import ImportStu from "./ImportStu";
import { checkGrowthPer } from "@/utils/utils";
import { useAsyncStu } from "@/utils/useCommon";
import dialog from "@/utils/dialog";
import PostSelect from "@/components/growthpath/PostSelect";
import RankSelect from "@/components/growthpath/RankSelect";
import GrowShowText from "@/components/growthpath/GrowShowText";
const props = defineProps({
type: Number,
permissions: {
type: String,
default: "",
},
activeKey: {
type: String,
default: "",
},
id: String,
columns: {
type: Array,
default: () => [],
},
stage: {
type: Array,
default: () => [],
},
visable: {
type: Boolean,
default: false,
},
isgetStudent: {
type: Boolean,
default: null,
},
groupList: {
type: Array,
default: () => [],
},
params: {
type: Object,
default: () => ({}),
},
growId: String,
});
// const { loading: stuAsyncLoading, start } = useAsyncStu(props.id, props.type, getStuList);
const topFlagList = ref([
{
id: 0,
value: 0,
label: "普通学员",
},
{
id: 1,
value: 1,
label: "优秀学员",
},
]);
const visibleName = ref([]);
const statusValues = ref([
{ value: "0", label: "岗位匹配" },
{ value: "1", label: "手动加入" },
]);
const getRowClass = (record) => {
return record.moveStatus ? "row-moveStatus-true" : "";
};
const tablecolumns = ref([
{
title: "姓名",
dataIndex: "studentName",
key: "studentName",
width: 100,
align: "left",
className: "h",
ellipsis: true,
slots: { customRender: "studyNames" },
},
{
title: "工号",
dataIndex: "studentUserNo",
key: "studentUserNo",
width: 100,
align: "center",
className: "h",
ellipsis: true,
},
{
title: "归属组织",
dataIndex: "studentOrgName",
key: "studentOrgName",
width: 230,
align: "center",
className: "h",
ellipsis: true,
},
{
title: "岗位",
dataIndex: "studentJobName",
key: "studentJobName",
width: 170,
align: "center",
className: "h",
ellipsis: true,
},
{
title: "Band",
dataIndex: "studentBandCode",
key: "studentBandCode",
width: 100,
align: "center",
className: "h",
ellipsis: true,
// customRender: ({ record: { studentOrgName, studentDepartName } }) =>
// allDepartShow(studentOrgName, studentDepartName),
},
{
title: "加入方式",
dataIndex: "source",
key: "source",
width: 100,
align: "center",
customRender: ({ record: { source } }) =>
({
0: "岗位匹配",
1: "手动加入",
2: "组织添加",
3: "受众添加",
4: "导入",
5: "报名",
6: "签到添加",
7: "岗位匹配",
}[source]),
},
{
title: "进度",
width: 100,
align: "center",
dataIndex: "finishNeedfinish",
key: "finishNeedfinish",
className: "h",
customRender: ({ record }) => (
<div class="text">
{record.finishTaskNum || 0}/{record.needFinishTaskNum || 0}
</div>
),
},
{
title: "状态",
dataIndex: "finishStatus",
key: "finishStatus",
width: 100,
align: "center",
className: "h",
ellipsis: true,
customRender: ({ record: { finishStatus } }) =>
({
null: "未开始",
0: "未开始",
1: "已完成",
2: "进行中",
}[finishStatus] || "未开始"),
},
{
title: "操作",
dataIndex: "operation",
key: "operation",
width: 100,
align: "center",
slots: { customRender: "action" },
},
]);
function allDepartShow(a, b) {
let org =
a == "" || a == null || a == undefined
? (a = "")
: a.slice(0, 1) == "/"
? a.slice(1, a.length)
: a;
let depart = b == "" || b == null || b == undefined ? (b = "") : b;
let allname = org == "" && depart == "" ? "-" : org + depart;
return allname;
}
const isSearchLists = (item) => {
console.log(item, "item");
getStuList();
};
const coulmsList = ref([
{
title: "岗位",
dataIndex: "jobName",
key: "jobName",
width: 80,
align: "center",
className: "h",
ellipsis: true,
},
{
title: "职级",
dataIndex: "bandCode",
key: "bandCode",
width: 80,
align: "center",
className: "h",
ellipsis: true,
},
]);
const tableParam = ref({
source: null,
keyword: "", //学员名称
// groupName: "", //学员小组
studentDepartId: null, //部门
// studentDepartName: null, //部门名称
topFlag: null, //是否是优秀学员
pageNo: 1,
status: 1,
pageSize: 10,
type: props.type,
// pid: props.id,
growId: props.growId,
...props.params,
bandCodeList: "",
positionNameList: "",
});
const stuSelectKeys = ref([]);
const tableData = ref({
list: [],
total: 10,
loading: false,
});
const stuRowSelection = computed(() => ({
columnWidth: 20,
selectedRowKeys: stuSelectKeys.value,
onChange: onStuSelectChange,
preserveSelectedRowKeys: true,
}));
function search() {
tableParam.value.pageNo = 1;
if (statusRank.value && statusRank.value.length != 0) {
tableParam.value.bandCodeList = statusRank.value
.map((item) => item.label)
.join(",");
} else {
tableParam.value.bandCodeList = "";
}
if (statusPost.value && statusPost.value.length != 0) {
tableParam.value.positionNameList = statusPostMaps.value
.map((item) => item.value)
.join(",");
} else {
tableParam.value.positionNameList = "";
}
getStuList();
}
// 导出数据
function exportTaskStu() {
console.log("props.datasource", props);
window.open(
`${
process.env.VUE_APP_BASE_API
}/admin/student/exportTaskStudent?type=${14}&pid=${props.id}`
);
}
const showText = ref(false);
const showTexts = () => {
showText.value = true;
};
onMounted(() => {
// debugger
console.log("props.activeKey1" + props.activeKey1);
getStuList();
});
watch(props.isgetStudent, () => {
console.log("监测");
});
watch(props, () => {
if (!props.visable) {
stuSelectKeys.value = [];
console.log("关闭了");
}
console.log("props.visable", props.visable);
// tableParam.value.pid = props.id;
getStuList();
});
function onStuSelectChange(e) {
stuSelectKeys.value = e;
}
const stuPagination = computed(() => ({
total: tableData.value.total,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
current: tableParam.value.pageNo,
pageSize: tableParam.value.pageSize,
onChange: changePagination,
}));
function changePagination(page, pageSize) {
tableParam.value.pageNo = page;
tableParam.value.pageSize = pageSize;
getStuList();
}
const statusPost = ref([]);
const statusPostMaps = ref([]);
const statusRank = ref([]);
const statusRanks = ref([]);
function getStuList() {
tableData.value.loading = true;
console.log("tableParam.value", tableParam.value);
getGrowStudent(tableParam.value)
.then((res) => {
console.log("学员管理-获取学员", res.data);
tableData.value.total = res.data.data.total;
tableData.value.list = res.data.data.records;
tableData.value.loading = false;
})
.catch((err) => {
tableData.value.loading = false;
});
}
function reset() {
tableParam.value.keyword = "";
// tableParam.value.groupName = ""; //学员小组
tableParam.value.studentDepartId = null; //部门
// tableParam.value.studentDepartName = null; //部门
tableParam.value.topFlag = null; //是否是优秀学员
tableParam.value.bandCodeList = "";
tableParam.value.positionNameList = "";
tableParam.value.source = null;
statusRank.value = [];
statusRanks.value = [];
statusPost.value = [];
statusPostMaps.value = [];
getStuList();
}
function bathDel() {
if (stuSelectKeys.value && stuSelectKeys.value.length === 0) {
message.destroy();
return message.warning("请先选中学员");
}
// 判断选择的人员中是否有小组长
// let arr = [...tableData.value.list]
// .filter((x) => [...stuSelectKeys.value].some((id) => id === x.id))
// .filter((item) => item.isLeader === "1");
// if (arr.length > 0) {
// return message.warning(
// "选择人员中:" + arr[0].studentName + "是小组长,请勿删除!"
// );
// }
dialog({
content: "确定删除吗?",
ok: () => {
tableData.value.loading = true;
delGrowStudent({
ids: stuSelectKeys.value,
type: props.type,
targetId: props.id,
}).then((res) => {
if (res.data.code == 200) {
message.success("删除成功");
}
stuSelectKeys.value = [];
tableParam.value.pageNo = 1;
getStuList();
});
},
});
}
const deleteModalVisible = ref(false);
const deleteId = ref(null);
const deleteTargetId = ref(null);
const deleteType = ref(null);
function del(id, row) {
// if (row.isLeader === "1") {
// return message.warning("" + row.name + "是小组长,请勿删除!");
// }
deleteModalVisible.value = true;
deleteId.value = id;
deleteTargetId.value = row.pid;
deleteType.value = row.type;
}
//确定删除
const sureSameModal = () => {
if (deleteId.value) {
tableData.value.loading = true;
delGrowStudent({
ids: [deleteId.value],
targetId: deleteTargetId.value,
type: deleteType.value,
}).then((res) => {
if (res.data.code == 200) {
message.success("删除成功");
}
tableParam.value.pageNo = 1;
getStuList();
});
deleteModalVisible.value = false;
}
};
//取消
const closeSameModal = () => {
deleteModalVisible.value = false;
deleteId.value = null;
deleteTargetId.value = null;
deleteType.value = null;
};
function submitCall(flag) {
tableData.value.loading = true;
if (!flag) {
tableData.value.loading = false;
}
flag && getStuList();
// flag && start();
}
// 查看学员
const Seevisible = ref(false);
const checkStuId = ref(null);
const projectId = ref(null);
function seeStudent(record) {
console.log(record);
checkStuId.value = record.id;
projectId.value = props.id;
Seevisible.value = true;
console.log(props.type);
console.log(checkStuId.value, projectId.value);
}
//导入学员
const AddImpStuvisible = ref(false); //导入学员抽屉
const showImpStu = () => {
AddImpStuvisible.value = true;
};
const AddImpStuvisibleClose = (isget) => {
console.log("关闭了导入学员弹框", isget);
if (isget) {
getStuList();
}
};
function startLoading() {
tableData.value.loading = true;
}
defineExpose({ getStuList, startLoading });
</script>
<style lang="scss" scoped>
::v-deep .ant-pagination-total-text {
color: #818a92;
}
.ant-table-pagination.ant-pagination {
display: flex;
justify-content: center;
}
.ant-table-pagination-right {
justify-content: center;
}
.row-moveStatus-true {
background-color: #ffffff;
color: #979797;
}
.ant-select-selection-item-content {
line-height: 26px !important;
}
.ant-select-selection-item-remove {
line-height: 26px !important;
}
::v-deep .ant-select-selection-item {
line-height: 40px !important;
}
.ant-popover-inner {
width: 355px;
height: 100px;
}
.tips {
padding: 20px 0 0 20px;
}
.stuName {
display: flex;
justify-content: center;
align-items: center;
.name {
width: 60px;
overflow: hidden;
text-overflow: ellipsis;
}
.wen {
width: 14px;
font-size: 14px;
height: 14px;
border: 1px solid #999999;
border-radius: 50%;
text-align: center;
line-height: 14px;
}
}
.TableStudent {
table tr th.ant-table-selection-column,
table tr td.ant-table-selection-column {
padding-left: 3px;
}
}
.stydentName {
overflow: hidden;
text-overflow: ellipsis;
}
.studentExcellent {
width: 64px;
height: 24px;
border-radius: 2px;
border: 1px solid #ffb64e;
background-color: rgba(255, 182, 78, 0.1);
margin-left: 24px;
display: flex;
align-items: center;
.studentExcellentImg {
width: 16px;
height: 16px;
margin-left: 7px;
}
.studentExcellentT {
font-size: 12px;
font-weight: 400;
color: #ffb64e;
line-height: 17px;
margin-left: 3px;
}
}
.studentopea1 {
font-size: 14px;
font-weight: 400;
color: #387df7;
line-height: 22px;
padding-right: 8px;
border-right: 1px solid #e9e9e9;
cursor: pointer;
}
.cus-btn {
width: 100%;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 16px;
border: 1px solid #4ea6ff;
border-radius: 8px;
background: #4ea6ff;
cursor: pointer;
color: #fff;
}
.white {
background: #fff;
color: #4ea6ff;
}
.cus-input {
height: 40px;
border-radius: 8px;
}
.del_header {
position: absolute;
width: calc(100%);
height: 40px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.batchOpera {
display: flex;
.stmm_btn {
width: 100px;
height: 40px;
margin-right: 14px;
background: #ffffff;
border: 1px solid #4ea6ff;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
.btnText {
color: #fff;
font-size: 14px;
font-weight: 400;
line-height: 40px;
}
}
.btn4 {
display: flex;
width: 130px;
flex-direction: column;
position: relative;
.btn4_sub {
display: flex;
justify-content: center;
align-items: center;
.b_zk {
width: 10px;
height: 8px;
// background-image: url("@/assets/images/coursewareManage/down.png");
background-size: 100% 100%;
}
.b_sq {
width: 10px;
height: 8px;
// background-image: url("@/assets/images/coursewareManage/up.png");
background-size: 100% 100%;
}
}
.btn4_sup {
width: 100%;
background-color: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
position: absolute;
top: 40px;
z-index: 999;
.btnsbox {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.btn4_tit {
margin: 10px auto;
white-space: nowrap;
}
.btn4_op1,
.btn4_op2,
.btn4_op3 {
margin-bottom: 10px;
white-space: nowrap;
}
// .btn4_tit:hover,
// .btn4_op1:hover,
// .btn4_op2:hover,
// .btn4_op3:hover {
// color: #4ea6ff;
// }
}
}
}
.btn5 {
margin-right: 0px;
.export {
width: 17px;
height: 18px;
margin-right: 5px;
background-image: url("@/assets/images/coursewareManage/export1.png");
}
}
}
.btnsearch {
display: flex;
position: absolute;
right: 10px;
}
.deleteModal1 {
.ant-modal {
width: 424px !important;
height: 258px !important;
.ant-modal-content {
width: 424px !important;
height: 258px !important;
.ant-modal-body {
width: 424px !important;
height: 258px !important;
padding: 0 !important;
.delete {
z-index: 999;
width: 424px;
height: 258px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
border-radius: 4px;
// position: absolute;
// left: 50%;
// top: 10%;
// transform: translate(-50%, -50%);
.del_header {
position: absolute;
width: calc(100%);
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.del_main {
width: 100%;
position: relative;
.header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/taskpage/gan.png);
background-size: 100% 100%;
}
.close_exit {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
}
.body {
width: 100%;
margin: 34px auto 56px auto;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
// background-color: red;
position: relative;
.back {
position: absolute;
top: 30px;
font-size: 12px;
font-weight: 400;
color: #666666;
}
}
.del_btnbox {
display: flex;
margin: 30px auto;
justify-content: center;
.del_btn {
width: 100px;
height: 40px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 40px;
}
}
.btn1 {
border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff;
margin-right: 14px;
}
.btn2 {
background-color: #4ea6ff;
color: #ffffff;
}
}
}
}
}
}
.ant-modal-close-x {
display: none;
}
}
}
/*.delete {
z-index: 9999;
width: 424px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
border-radius: 4px;
position: absolute;
left: 50%;
top: 10%;
transform: translate(-50%, -50%);
}
.body {
width: 100%;
margin: 34px auto 56px auto;
display: flex;
justify-content: center;
align-items: center;
}
.del_main {
width: 100%;
position: relative;
}
.del_main > .header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
}
.del-icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/notice.png);
background-size: 100% 100%;
}
.icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/QR.png);
background-size: 100% 100%;
}
.close_exit {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
.del_btnbox {
display: flex;
margin: 30px auto;
justify-content: center;
}
.del_btn {
width: 100px;
height: 40px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
}
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 40px;
}
.btn1 {
border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff;
}
.btn2 {
background-color: #4ea6ff;
color: #ffffff;
}
.ant-modal-close {
margin-right: 18px;
margin-top: 5px;
}
.ant-modal-content {
width: 424px !important;
height: 258px !important;
}
.ant-modal-body {
width: 424px !important;
height: 258px !important;
padding: 0 !important;
position: relative;
top: 105px !important;
}
.ant-modal-body > .delete {
z-index: 999;
width: 424px;
height: 258px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
border-radius: 4px;
}
.ant-modal-body > .del_header {
position: absolute;
width: calc(100%);
height: 68px;
background: linear-gradient(rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%);
}
.ant-modal-body > .del_main {
width: 100%;
position: relative;
}
.ant-modal-body > .del_main > .header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
}
.ant-modal-body > .del_main > .header > .icon1 {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/QR.png);
background-size: 100% 100%;
}
.ant-modal-body > .del_main > .header > .close_exit {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
.ant-modal-body > .del_main > .body {
width: 100%;
margin: 34px auto 56px auto;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
position: relative;
}
.ant-modal-body > .del_main > .body > .back {
position: absolute;
top: 30px;
font-size: 12px;
font-weight: 400;
color: #666666;
}
.ant-modal-body > .del_main > .del_btnbox {
display: flex;
margin: 30px auto;
justify-content: center;
}
.ant-modal-body > .del_main > .del_btnbox > .del_btn {
width: 100px;
height: 40px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
}
.ant-modal-body > .del_main > .del_btnbox > .del_btn > .btnText {
font-size: 14px;
font-weight: 400;
line-height: 40px;
}
.ant-modal-body > .del_main > .del_btnbox > .btn1 {
border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff;
margin-right: 14px;
}
.ant-modal-body > .del_main > .del_btnbox > .btn2 {
background-color: #4ea6ff;
color: #ffffff;
}
*/
</style>