Files
fe-manage/src/components/student/ChangeGroupModal.vue
2023-02-23 23:31:09 +08:00

230 lines
5.7 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.
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-12-20 17:00:37
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-02-11 15:06:13
* @FilePath: /fe-manage/src/components/student/ChangeLevelModal.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<a-modal style="padding: 0" :closable="true" :visible="changegroupV" :footer="null" centered="true"
wrapClassName="changeModal">
<div class="con">
<div class="header">
<div class="inhe">
<div class="mod"></div>
<div class="tz">换组</div>
<div class="mg" @click="closeChangeModal"></div>
</div>
</div>
<div class="mid">
<div class="inher">
<!-- <div class="cur">当前关卡关卡2</div> -->
<div class="select">
<a-select v-model:value="selectGroupId" style="width: 100%" placeholder="请选择小组" :options="option" allowClear
@change="selectGroup"></a-select>
</div>
<div class="btn">
<button class="sameb btn1" @click="closeChangeModal" style="cursor: pointer">
取消
</button>
<button class="sameb btn2" @click="changeGroup" style="cursor: pointer">
确定
</button>
</div>
</div>
</div>
</div>
</a-modal>
</template>
<script setup>
import { computed, defineEmits, defineProps, ref } from "vue";
import * as api from "@/api/index1";
import { message } from "ant-design-vue";
// import { message } from "ant-design-vue";
const props = defineProps({
changegroupV: {
type: Boolean,
default: false,
},
groupList: {
type: Array,
default: () => [],
},
checkgroupStuId: {
type: Number,
default: null,
},
});
const option = computed(() => {
debugger
console.log("props.groupList", props.groupList);
return props.groupList.map((e) => ({
label: e.groupName,
value: e.projectGroupId,
}));
});
console.log("changegroupV", props.changegroupV);
const selectGroupId = ref();
const selectGroupName = ref();
const emit = defineEmits({});
const closeChangeModal = () => {
emit("update:changegroupV", false);
selectGroupId.value = null;
};
const selectGroup = (e, v) => {
console.log("选择小组", e, v);
selectGroupName.value = v.label;
};
//确认换组
const changeGroup = (item) => {
// debugger
console.log("换组", selectGroupId.value, item);
props.checkgroupStuId.forEach(stu => {
let obj = {
groupId: selectGroupId.value,
groupName: selectGroupName.value,
studentId: stu,
};
console.log("换组obj", obj);
api
.changeGroupByStudentId(obj)
.then((res) => {
console.log("换组成功", res);
if (res.data.code === 200) {
message.success("换组成功");
closeChangeModal();
}
})
.catch((err) => {
console.log("换组失败", err);
});
})
};
</script>
<style lang="scss">
.changeModal {
.ant-modal {
width: 549px !important;
height: 245px !important;
.ant-modal-close-x {
display: none;
}
.ant-modal-content {
width: 549px !important;
height: 245px !important;
.ant-modal-body {
padding: 0 !important;
width: 549px !important;
height: 245px !important;
.con {
// background-color: #bfa;
width: 100%;
height: 100%;
.header {
width: 100%;
display: flex;
height: 68px;
position: relative;
justify-content: center;
background: linear-gradient(rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%);
.inhe {
width: 80%;
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.mod {
left: 30px;
top: 27px;
position: absolute;
width: 18px;
height: 17px;
background-image: url(../../assets/images/leveladd/mod.png);
}
.tz {
color: #000000;
font-weight: 400;
font-size: 16px;
}
.mg {
width: 20px;
height: 20px;
background-image: url(../../assets/images/basicinfo/close22.png);
background-size: 100% 100%;
cursor: pointer;
}
}
}
.mid {
width: 100%;
display: flex;
height: 100%;
justify-content: center;
.inher {
width: 80%;
height: 100%;
.cur {
color: #6f6f6f;
font-size: 14px;
}
.select {
margin-top: 10px;
}
.btn {
width: 100%;
display: flex;
justify-content: center;
margin-top: 30px;
.sameb {
width: 100px;
height: 40px;
font-size: 14px;
border-radius: 8px;
}
.btn1 {
color: #4ea6ff;
background: #ffffff;
border: 1px solid #4ea6ff;
}
.btn2 {
margin-left: 16px;
border: 0;
color: #ffffff;
background: #4ea6ff;
}
}
}
}
}
}
}
}
}
</style>