This commit is contained in:
dongwug
2022-10-25 18:14:31 +08:00
14 changed files with 392 additions and 158 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

View File

@@ -15,7 +15,7 @@
@click="closeDrawer"
/>
</div>
<div class="main">
<div class="centermain">
<div class="titl">
<div class="endtime">
起止时间2022-07-21 14:00 2022-7-30 14:00
@@ -76,13 +76,13 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1" @click="showqdModal">
<div class="btn btn2" @click="showqdModal">
<div class="wz">批量签到</div>
</div>
<div class="btn btn2" @click="showqtModal">
<div class="wz">批量签退</div>
</div>
<div class="btn btn2">
<div class="btn btn1">
<div class="img2"></div>
<div class="wz">导出数据</div>
</div>
@@ -137,12 +137,10 @@
/>
</div> -->
</div>
</div>
<div class="botm"></div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</div>
</a-drawer>
<!-- 批量签到弹窗 -->
@@ -205,6 +203,96 @@
</div>
</div>
</a-modal>
<!-- 单独签到弹窗 -->
<a-modal
v-model:visible="singleqdModal"
:footer="null"
:closable="closeCopy"
wrapClassName="CopyModal"
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="closesingleqdModal"></div>
</div>
<div class="body">
<span>您确定要签到吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 单独签退弹窗 -->
<a-modal
v-model:visible="singleqtModal"
:footer="null"
:closable="closeCopy"
wrapClassName="CopyModal"
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="closesingleqtModal"></div>
</div>
<div class="body">
<span>您确定要签退吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 单独请假弹窗 -->
<a-modal
v-model:visible="singleqjModal"
:footer="null"
:closable="closeCopy"
wrapClassName="CopyModal"
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="closesingleqjModal"></div>
</div>
<div class="body">
<span>您确定要请假吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
</template>
<script>
@@ -230,6 +318,9 @@ export default {
selectedRowKeys: [],
qtModal: false, //批量签退
qdModal: false, //批量签到
singleqjModal: false, //单独请假
singleqdModal: false, //单独签到
singleqtModal: false, //单独签退
closeCopy: false,
projectNameList: [
{
@@ -424,6 +515,7 @@ export default {
checked={value.signIn}
onChange={(e) => {
console.log("点击签到", e);
showsingleqdModal();
}}
>
签到
@@ -432,6 +524,7 @@ export default {
checked={value.signOut}
onChange={(e) => {
console.log("点击签退", e);
showsingleqtModal();
}}
>
签退
@@ -440,6 +533,7 @@ export default {
checked={value.leave}
onChange={(e) => {
console.log("点击请假", e);
showsingleqjModal();
}}
>
请假
@@ -551,6 +645,24 @@ export default {
const closeqtModal = () => {
state.qtModal = false;
};
const showsingleqdModal = () => {
state.singleqdModal = true;
};
const showsingleqtModal = () => {
state.singleqtModal = true;
};
const showsingleqjModal = () => {
state.singleqjModal = true;
};
const closesingleqdModal = () => {
state.singleqdModal = false;
};
const closesingleqtModal = () => {
state.singleqtModal = false;
};
const closesingleqjModal = () => {
state.singleqjModal = false;
};
return {
...toRefs(state),
selectProjectName,
@@ -563,6 +675,12 @@ export default {
showqtModal,
closeqtModal,
closeqdModal,
showsingleqdModal,
showsingleqtModal,
showsingleqjModal,
closesingleqdModal,
closesingleqtModal,
closesingleqjModal,
};
},
};
@@ -590,6 +708,7 @@ export default {
// overflow-x: scroll;
display: flex;
flex-direction: column;
height: 100%;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
@@ -607,12 +726,13 @@ export default {
// margin-left: 24px;
}
}
.main {
width: 100%;
height: 100%;
background-color: #bfa;
.centermain {
// width: 100%;
// height: 100%;
// background-color: #bfa;
flex: 1;
overflow-y: auto;
margin-bottom: 75px;
.titl {
display: flex;
.endtime {
@@ -713,7 +833,7 @@ export default {
.img2 {
width: 17px;
height: 16px;
background-image: url(../../assets/images/coursewareManage/export.png);
background-image: url(../../assets/images/coursewareManage/export1.png);
background-size: 100% 100%;
margin-right: 7px;
}
@@ -815,7 +935,7 @@ export default {
background: #f6f9fd;
}
.opa {
background-color: #bfa;
// background-color: #bfa;
}
}
// .tab {
@@ -834,44 +954,45 @@ export default {
// }
// }
}
}
.botm {
width: 100%;
height: 90px;
// background-color: red;
// flex-shrink: 1;
}
.btnn {
height: 72px;
width: 100%;
position: absolute;
background-color: #fff;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
.btnn {
height: 72px;
width: 100%;
// position: absolute;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
// bottom: 0;
// left: 0;
display: flex;
// display: none;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
// .botm {
// width: 100%;
// height: 90px;
// // background-color: red;
// // flex-shrink: 1;
// }
}
}
}

View File

@@ -3,7 +3,7 @@
:visible="Changevisible"
class="drawerStyle changegroup"
placement="right"
width="50%"
width="70%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
@@ -23,6 +23,8 @@
style="width: 264px; border-radius: 8px"
placeholder="好好学习"
:options="stugroupList"
allowClear
showSearch
/>
</div>
</div>
@@ -59,8 +61,8 @@ export default {
},
{
id: "3",
value: "好好学习",
label: "好好学习",
value: "最强小组",
label: "最强小组",
},
],
});
@@ -118,7 +120,8 @@ export default {
height: 40px;
}
.ant-select-selector {
height: 100%;
height: 40px;
padding: 4px 11px;
border-radius: 8px;
}
.ant-select-selection-search-input {

View File

@@ -52,7 +52,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1" style="margin-right: 20px">
<div class="btn btn1" style="margin-right: 20px" @click="showopen">
<div class="img1"></div>
<div class="wz">催促学习</div>
</div>
@@ -136,6 +136,10 @@
<button class="btn btn2" @click="check">确定</button>
</div>
</a-modal>
<div class="noticebox" v-show="open">
<div><img src="../../assets/images/taskpage/check.png" /></div>
<div class="notext">催促学员成功</div>
</div>
</div>
</a-drawer>
<!-- 录入成绩抽屉 -->
@@ -143,7 +147,7 @@
</template>
<script>
import { toRefs, reactive } from "vue";
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import EntryScores from "./EntryScores.vue";
export default {
name: "FaceManage",
@@ -165,6 +169,7 @@ export default {
currentPage: 1,
tableDataTotal: 100,
showdonemodal: false,
open: false,
selectedRowKeys: [],
projectNameList: [
{
@@ -351,7 +356,18 @@ export default {
// }
// state.selectedRowKeys = selectedRowKeys;
};
const showopen = () => {
state.open = true;
};
let timer;
onMounted(() => {
timer = setInterval(() => {
state.open = false;
}, 3000);
});
onUnmounted(() => {
clearInterval(timer);
});
return {
...toRefs(state),
selectProjectName,
@@ -363,6 +379,7 @@ export default {
showEntryScore,
showdoneModal,
closedoneModal,
showopen,
};
},
};
@@ -381,6 +398,7 @@ export default {
// }
// }
//面授管理弹窗
.FacMa {
.ant-modal {
@@ -498,6 +516,23 @@ export default {
overflow-x: scroll;
display: flex;
flex-direction: column;
.noticebox {
width: 240px;
height: 64px;
background: rgba(255, 255, 255, 1);
border-radius: 4px;
position: absolute;
top: 161px;
display: flex;
align-items: center;
justify-content: center;
.notext {
color: rgba(51, 51, 51, 1);
font-size: 14px;
font-weight: 500;
margin-left: 20px;
}
}
.header {
height: 73px;
@@ -615,7 +650,7 @@ export default {
.img1 {
width: 15px;
height: 17px;
background-image: url(../../assets/images/courseManage/search0.png);
background-image: url(../../assets/images/basicinfo/call.png);
background-size: 100% 100%;
margin-right: 7px;
}

View File

@@ -3,7 +3,7 @@
:visible="Importvisible"
class="drawerStyle importstu"
placement="right"
width="50%"
width="70%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">

View File

@@ -26,7 +26,7 @@
</div>
</div>
<div class="btnn">
<button class="btn2">关闭</button>
<button class="btn2" @click="closeDrawer">关闭</button>
</div>
</div>
</a-drawer>
@@ -75,7 +75,7 @@ export default {
}
}
.drawerMain {
min-width: 600px;
min-width: 434px;
margin: 0px 32px 0px 32px;
overflow-x: scroll;
display: flex;

View File

@@ -232,7 +232,7 @@
</div>
</div>
<div class="btnn">
<button class="btn2">关闭</button>
<button class="btn2" @click="closeDrawer">关闭</button>
</div>
</div>
</a-drawer>

View File

@@ -3,7 +3,7 @@
:visible="Stuvisible"
class="drawerStyle stuadd"
placement="right"
width="50%"
width="70%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">

View File

@@ -1053,7 +1053,7 @@
<!-- 无数据样式 -->
<div
class="notable"
:style="{ display: stm_hs ? 'block' :'none' }"
:style="{ display: stm_hs ? 'block' : 'none' }"
>
<div class="notablebox">
<div class="boxbody">
@@ -1692,12 +1692,27 @@
style="margin-top: 400px"
@cancel="delete_exit"
>
<div class="delete" :style="{ display: delete_hs || copy_hs || nouse_hs ? 'block' : 'none' }">
<div
class="delete"
:style="{
display: delete_hs || copy_hs || nouse_hs ? 'block' : 'none',
}"
>
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="del-icon" :style="{ display: del_hs ? 'block' : 'none' }"><img src="@/assets/images/coursewareManage/notice.png" alt=""></div>
<div class="del-icon" :style="{ display: copy_hs || nouse_hs ? 'block' : 'none' }"><img src="@/assets/images/coursewareManage/QR.png" alt=""></div>
<div
class="del-icon"
:style="{ display: del_hs ? 'block' : 'none' }"
>
<img src="@/assets/images/coursewareManage/notice.png" alt="" />
</div>
<div
class="del-icon"
:style="{ display: copy_hs || nouse_hs ? 'block' : 'none' }"
>
<img src="@/assets/images/coursewareManage/QR.png" alt="" />
</div>
<span>提示</span>
<div class="close_exit" @click="delete_exit"></div>
</div>
@@ -2407,7 +2422,7 @@ export default defineComponent({
agreestudy_hs: false,
rejectstudy_hs: false,
delete_hs: false,
del_hs:false,
del_hs: false,
copy_hs: false,
nouse_hs: false,
// 二维码标题状态
@@ -2920,7 +2935,7 @@ export default defineComponent({
<div
onClick={() => {
state.delete_hs = true;
state.del_hs = true;
state.del_hs = true;
}}
>
删除
@@ -2998,11 +3013,15 @@ export default defineComponent({
{value.status === "已拒绝" ? (
<div class="nselect">
<div class="ops2">
<div class="jc"
onClick={() => {
<div
class="jc"
onClick={() => {
state.delete_hs = true;
state.del_hs = true;
}}>删除</div>
}}
>
删除
</div>
</div>
</div>
) : (
@@ -3414,7 +3433,7 @@ export default defineComponent({
}
}
.tableSelect {
margin-right: 10px;
// margin-right: 10px;
margin-left: -5px;
display: flex;
align-items: center;
@@ -4759,7 +4778,7 @@ export default defineComponent({
display: flex;
justify-content: center;
text-align: center;
margin:77px auto 109px auto;
margin: 77px auto 109px auto;
cursor: pointer;
position: relative;
.smallleft {
@@ -4835,7 +4854,7 @@ export default defineComponent({
}
}
.tableSelect {
margin-right: 10px;
// margin-right: 10px;
margin-left: -5px;
display: flex;
align-items: center;
@@ -5197,16 +5216,16 @@ export default defineComponent({
padding-left: 26px;
font-size: 16px;
.del-icon {
width: 16px;
height: 16px;
position: relative;
margin-right: 10px;
img{
width: 16px;
height: 16px;
position: relative;
margin-right: 10px;
img {
width: 100%;
height: 100%;
position: absolute;
top:0px;
left:0px;
top: 0px;
left: 0px;
background-size: 100% 100%;
}
}

View File

@@ -1,5 +1,5 @@
<template>
<div class="allCon">
<div class="leveladddetail">
<div class="left clearfix">
<div class="leftmain">
<div class="tit" style="margin-left: 18px">关卡</div>
@@ -319,7 +319,7 @@
</div>
<div class="drawerbox">
<a-table
:columns="drawercolumns"
:columns="drawertableColumns()"
:data-source="drawertableData"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 700 }"
@@ -374,9 +374,11 @@
<button class="addx" @click="showAddStu">添加学员</button>
<!-- 点击抽屉组件在LevelAdd此处没添加showAddStushowImpStu -->
<button class="addd" @click="showImpStu">导入学员</button>
<button class="addd" @click="showDeleteALLModal">批量删除</button>
<button class="addd" @click="showDeleteALLModal">
批量删除
</button>
</div>
<div class="talk">
<!-- <div class="talk">
<img class="im" src="../../assets/images/leveladd/gan.png" />
<div class="xu">
<span class="yi">已选择</span>
@@ -388,12 +390,11 @@
<span class="yi">5</span>
<span class="yi"></span>
</div>
</div>
<div class="tablebox1" style="margin-top: 30px">
</div> -->
<div class="tablebox1" style="margin-top: 20px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc2()"
:scroll="{ y: 235 }"
:data-source="tableData2"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@@ -405,7 +406,7 @@
onChange: onSelectChange,
}"
/>
<div class="pa">
<!-- <div class="pa">
<a-pagination
showSizeChanger="true"
showQuickJumper="true"
@@ -415,7 +416,7 @@
:total="tableDataTotal"
class="pagination"
/>
</div>
</div> -->
<!-- 无数据样式 -->
<div
class="notable"
@@ -496,44 +497,6 @@
import { reactive, toRefs, onMounted, onUnmounted } from "vue";
import AddStu from "../../components/drawers/AddLevelAddStu";
import ImpStu from "../../components/drawers/AddLevelImportStu";
const drawercolumns = [
{
title: "项目名称",
dataIndex: "projectName",
key: "projectName",
width: 200,
// align: "center",
ellipsis: true,
// scopedSlots: { customRender: "action" }, //引入的插槽
// customRender: (text, record) => {
// console.log(text, record);
// return <span>{text.text}</span>;
// },
},
{
title: "项目经理",
dataIndex: "manager",
key: "manager",
width: 100,
align: "center",
},
{
title: "创建人",
dataIndex: "creater",
// width: "30%",
key: "creater",
width: 100,
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: 180,
align: "center",
},
];
export default {
name: "LevelAddDetail",
components: {
@@ -737,7 +700,6 @@ export default {
key: "1-1",
projectName: "管理者进阶-腾飞班",
manager: "黄华 刘俊",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
children: [
@@ -836,6 +798,8 @@ export default {
selectedRowKeys: [],
isActive: false,
gqxy_hs: true,
projectChecked: null, //项目单选框
});
const showDrawer = () => {
state.visible = true;
@@ -1067,6 +1031,82 @@ export default {
state.selectedRowKeys = selectedRowKeys;
};
const drawertableColumns = () => {
// let arr = state.drawertableData;
// function traverse(arr) {
// for (var a in arr) {
// // console.log(arr[a]);
// if (arr[a].children) {
// traverse(arr[a].children); //递归遍历
// } else {
// console.log(arr[a].children); //如果是值就显示
// }
// }
// }
// traverse(arr);
const drawercolumns = [
{
title: "项目名称",
dataIndex: "projectName",
key: "projectName",
width: 200,
// align: "center",
ellipsis: true,
// scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text.record.key);
if (!text.record.children) {
return (
<div style={{ display: "flex" }}>
<a-checkbox
checked={
state.projectChecked === text.record.key ? true : false
}
value={text.record.key}
onChange={() => {
// console.log("改变了", text.record.key);
if (state.projectChecked === text.record.key) {
state.projectChecked = null;
} else {
state.projectChecked = text.record.key;
}
}}
></a-checkbox>
<span style="margin-left: 5px">{text.text}</span>
</div>
);
} else {
return <span>{text.text}</span>;
}
},
},
{
title: "项目经理",
dataIndex: "manager",
key: "manager",
width: 100,
align: "center",
},
{
title: "创建人",
dataIndex: "creater",
// width: "30%",
key: "creater",
width: 100,
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: 180,
align: "center",
},
];
return drawercolumns;
};
// const getClientHeight = () => {
// state.rightheight =
// document.getElementsByClassName("addhead")[0].offsetHeight +
@@ -1096,8 +1136,8 @@ export default {
state.deleteAll = true;
};
const delete_exit = () => {
state.deleteAll = false
}
state.deleteAll = false;
};
return {
...toRefs(state),
tableDataFunc,
@@ -1109,12 +1149,13 @@ export default {
afterVisibleChange,
showAddStu,
showImpStu,
drawercolumns,
// drawercolumns,
onSelectChange,
changebgc,
gqxy_hShow,
showDeleteALLModal,
delete_exit,
drawertableColumns,
};
},
};
@@ -1342,7 +1383,7 @@ export default {
}
}
}
.allCon {
.leveladddetail {
width: 100%;
display: flex;
min-width: 933px;
@@ -1681,7 +1722,7 @@ export default {
}
.tableBox {
margin-top: 21px;
margin-bottom: 80px;
margin-bottom: 20px;
.classify {
margin-left: 10px !important;
padding-left: 9px !important;
@@ -1786,8 +1827,7 @@ export default {
}
}
.tableBox {
margin-bottom: 80px;
margin-block-end: 20px;
.classify {
margin-left: 11px !important;
padding-left: 9px !important;

View File

@@ -234,20 +234,13 @@
</div>
<div class="footer">
<div class="btn">
<a-button
<router-link to="/taskpage"
type="primary"
style="width: 100px; height: 40px; border-radius: 8px"
></a-button
class="btn1"
></router-link
>
<a-button
type="primary"
ghost
style="
width: 100px;
height: 40px;
margin-left: 14px;
border-radius: 8px;
"
class="btn2"
>取消</a-button
>
</div>
@@ -511,6 +504,28 @@ export default {
.btn {
display: flex;
justify-content: center;
.btn1 {
display: flex;
justify-content: center;
align-items: center;
width: 100px;
height: 40px;
border-radius: 8px;
background: #409EFF;
color:#FFFFFF;
margin-right: 14px;
}
.btn2 {
display: flex;
justify-content: center;
align-items: center;
width: 100px;
height: 40px;
border-radius: 8px;
border: 1px solid #409EFF;
background: #FFFFFF;
color:#409EFF;
}
}
.text {
color: rgba(153, 155, 163, 1);

View File

@@ -253,7 +253,7 @@
</div>
</div>
<!-- 无数据样式 -->
<div class="notable" style="display:none;">
<div class="notable" style="display: none">
<div class="notablebox">
<div class="boxbody">
<div class="boximg"></div>
@@ -269,7 +269,7 @@
</div>
</div>
<div class="rwbox">
<div class="talk">
<!-- <div class="talk">
<img class="im" src="../../assets/images/leveladd/gan.png" />
<div class="xu">
<span class="yi">已选择</span>
@@ -281,7 +281,7 @@
<span class="yi">5</span>
<span class="yi"></span>
</div>
</div>
</div> -->
<div class="tableBox">
<a-table
style="border: 1px solid #f2f6fe"
@@ -298,7 +298,7 @@
}"
/>
<div class="pa">
<!-- <div class="pa">
<a-pagination
showSizeChanger="true"
showQuickJumper="true"
@@ -308,7 +308,7 @@
:total="tableDataTotal"
class="pagination"
/>
</div>
</div> -->
</div>
</div>
@@ -1860,7 +1860,8 @@ export default {
}
}
.tableBox {
padding-bottom: 80px;
padding-bottom: 20px;
margin-top: 20px;
.classify {
margin-left: 10px !important;
padding-left: 9px !important;

View File

@@ -1649,7 +1649,7 @@ export default {
checkedd2: false, //设置按钮2
radioV1: "",
radioV2: "",
activeKey: "3",
activeKey: "1",
activeKey1: "8",
activeKey2: "3",
inputValue: 5,
@@ -3771,7 +3771,7 @@ export default {
}
}
.tableSelect {
margin-right: 10px;
// margin-right: 10px;
margin-left: -5px;
display: flex;
align-items: center;

View File

@@ -144,7 +144,7 @@
@change="minChange"
/>
</div>
<div class="namebox" style="margin-left: -180px">
<div class="namebox">
<div class="inname">最高分</div>
</div>
<div class="in numberInp">