外校老师功能完善
This commit is contained in:
parent
ea8e4c842f
commit
87201c3af9
|
@ -0,0 +1,601 @@
|
|||
<template>
|
||||
<div class="main-container">
|
||||
<div class="hsd-title">
|
||||
<!-- <img src="@/assets/img1/logo.svg">-->
|
||||
<img src="@/assets/orangeUi/logo.svg">
|
||||
</div>
|
||||
<div class="head-cg">
|
||||
<!-- <img src="@/assets/img1/cg.svg">-->
|
||||
<img src="@/assets/orangeUi/cg.svg">
|
||||
</div>
|
||||
<div class="main-content">
|
||||
<div class="main-text">
|
||||
{{ store.user.userName }},您已成功报名!<p>感谢您参与本次 <em style="font-style: normal; color:red; font-weight: 700">{{
|
||||
getUserInfo(store.getMajorId) }}</em> 学科评卷工作!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main-icon">
|
||||
<div class="main-item">
|
||||
<van-row wrap>
|
||||
<van-col span="6" v-if="showIcon.show0">
|
||||
<img @click="show0 = true" src="../assets/imgs/my.svg" alt="">
|
||||
<van-dialog title="个人信息" :overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }" :show-confirm-button="false"
|
||||
v-model:show="show0">
|
||||
<div class="tishi">
|
||||
|
||||
<van-form @submit="onSubmit">
|
||||
<van-cell-group inset>
|
||||
<van-field style="height: 35px; line-height: 100%" readonly v-if="user.userName"
|
||||
v-model="user.userName" name="userName" label="姓名" type="text" />
|
||||
<van-field readonly style="height: 35px; line-height:100%" v-if="user.identityId"
|
||||
v-model="user.identityId" name="userCardId" label="身份证号" />
|
||||
<!-- <van-field-->
|
||||
<!-- style="height: 35px; line-height: 100%"-->
|
||||
<!-- v-model="user.sex"-->
|
||||
<!-- readonly-->
|
||||
<!-- name="picker"-->
|
||||
<!-- label="性别"-->
|
||||
|
||||
<!-- />-->
|
||||
<!-- <van-field-->
|
||||
<!-- style="height: 35px; line-height: 100%"-->
|
||||
<!-- readonly-->
|
||||
<!-- v-model="user.age"-->
|
||||
<!-- name="age"-->
|
||||
<!-- label="年龄"-->
|
||||
<!-- type="text"-->
|
||||
|
||||
<!-- />-->
|
||||
<van-field style="height: 35px; line-height: 100%" readonly v-if="user.phone" v-model="user.phone"
|
||||
name="phone" label="手机号" type="number" />
|
||||
<van-field style="height: 35px; line-height: 100%" v-if="user.jobTitle" v-model="user.jobTitle"
|
||||
readonly name="picker" label="职称" />
|
||||
<van-field style="height: 35px; line-height: 100%" readonly v-if="user.office" v-model="user.office"
|
||||
name="office" label="职务" type="text" />
|
||||
<van-field style="height: 35px; line-height: 100%" readonly v-if="user.workName"
|
||||
v-model="user.workName" name="workName" label="单位名称" type="text" />
|
||||
<van-field style="height: 35px; line-height: 100%" readonly v-if="user.workPhone"
|
||||
v-model="user.workPhone" name="workPhoen" label="单位电话" type="text" />
|
||||
<van-field style="height: 35px; line-height: 100%" v-if="user.pyCard" readonly v-model="user.pyCard"
|
||||
name="pyCard" label="银行卡号" type="number" />
|
||||
|
||||
<van-field style="height: 35px; line-height: 100%" readonly v-if="user.bankAddress"
|
||||
v-model="user.bankAddress" name="bankAddress" label="开户所在地" type="text" />
|
||||
<van-field style="height: 35px; line-height: 100%" readonly v-if="user.bankName"
|
||||
v-model="user.bankName" name="bankName" label="开户行" type="text" />
|
||||
<van-field style="height: 35px; line-height: 100%" readonly v-if="user.carStatus === 1"
|
||||
v-model="user.carNumber" name="carNumber" label="车牌号" type="text" height="40px" />
|
||||
<van-field name="dormitoryStatus" v-if="user.dormitoryStatus === 1" :readonly="true"
|
||||
style="height: 35px; line-height: 50%" label="是否住宿">
|
||||
<template #input>
|
||||
<van-radio-group checked-color="#8D2328" style="height: 35px; line-height: 50%"
|
||||
v-model="user.dormitoryStatus" direction="horizontal">
|
||||
<!-- <van-radio name="1">是</van-radio>-->
|
||||
<!-- <van-radio name="0">否</van-radio>-->
|
||||
{{ user.dormitoryStatus === 1 ? '是' : '否' }}
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
<van-field v-if="user.studentId" style="height: 35px; line-height: 100%" readonly
|
||||
v-model="user.studentId" name="studentId" label="学号" type="text" height="40px" />
|
||||
<van-field v-if="user.teacherId" style="height: 35px; line-height: 100%" readonly
|
||||
v-model="user.teacherId" name="teacherId" label="工号" type="text" height="40px" />
|
||||
<van-field v-if="user.mealCard" style="height: 35px; line-height: 100%" readonly
|
||||
v-model="user.mealCard" name="teacherId" label="饭卡" type="text" height="40px" />
|
||||
|
||||
</van-cell-group>
|
||||
</van-form>
|
||||
|
||||
</div>
|
||||
|
||||
<span class="dialog-close-content" @click="show0 = false">×</span>
|
||||
</van-dialog>
|
||||
<p>我的信息</p>
|
||||
</van-col>
|
||||
|
||||
|
||||
<van-col span="6" v-if="showIcon.show1">
|
||||
<img @click="show1 = true" src="../assets/imgs/ditu.svg" alt="">
|
||||
<div class="ditu-img" v-if="show1">
|
||||
<span @click="show1 = false">
|
||||
关闭 ✕
|
||||
</span>
|
||||
<div class="card-img">
|
||||
<img src="@/assets/orangeUi/ditu.jpg" style="width: 100%;height: 100%" alt="师大地图">
|
||||
</div>
|
||||
</div>
|
||||
<p>师大地图</p>
|
||||
</van-col>
|
||||
|
||||
|
||||
<van-col span="6" v-if="showIcon.show2">
|
||||
<img @click="show2 = true" src="@/assets/imgs/txz.svg" alt="">
|
||||
<div class="txz-img" v-if="show2">
|
||||
<span @click="show2 = false">
|
||||
关闭 ✕
|
||||
</span>
|
||||
<!-- <div class="card-pai">黑A·35648</div>-->
|
||||
<div class="card-pai">{{ carNum() }}</div>
|
||||
<div class="card-tishi">该车辆为评卷教师车辆,已向学校报备,请放行!</div>
|
||||
</div>
|
||||
<p>通行证</p>
|
||||
</van-col>
|
||||
|
||||
<van-col span="6" v-if="showIcon.show3">
|
||||
<img @click="showGroup" src="@/assets/imgs/fenzu.svg" alt="">
|
||||
<van-dialog :overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }" :show-confirm-button="false"
|
||||
:show-cancel-button="false" v-model:show="show3">
|
||||
<span class="dialog-close-content" @click="show3 = false">×</span>
|
||||
<div class="grop-by">
|
||||
分组信息
|
||||
<p v-if="!group">暂时未分组</p>
|
||||
<p v-else>{{ group }}</p>
|
||||
</div>
|
||||
</van-dialog>
|
||||
<p>所属分组</p>
|
||||
</van-col>
|
||||
<van-col span="6" v-if="showIcon.show4">
|
||||
<img @click="show4 = true" src="@/assets/imgs/sushi.svg" alt="">
|
||||
<van-dialog :overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }" :show-confirm-button="false"
|
||||
:show-cancel-button="false" v-model:show="show4">
|
||||
<span class="dialog-close-content" @click="show4 = false">×</span>
|
||||
<div class="grop-by">
|
||||
宿舍分配
|
||||
<p v-if="!store.LoginUser.dormitory">暂时未分配</p>
|
||||
<p v-else>{{ store.LoginUser.dormitory }}</p>
|
||||
</div>
|
||||
</van-dialog>
|
||||
<p>宿舍</p>
|
||||
</van-col>
|
||||
<van-col span="6" v-if="showIcon.show5">
|
||||
<img @click="show5 = true" src="@/assets/imgs/didian.svg" alt="">
|
||||
<van-dialog :overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }" :show-confirm-button="false"
|
||||
:show-cancel-button="false" v-model:show="show5">
|
||||
<div class="grop-by">
|
||||
评卷地点信息
|
||||
<p>暂时未发布</p>
|
||||
<!-- <p v-if="!group">暂时未发布</p>-->
|
||||
<!-- <p v-else>{{ group }}</p>-->
|
||||
</div>
|
||||
<!-- <img src="@/assets/img/dt.jpg"/>-->
|
||||
<span class="dialog-close-content" @click="show5 = false">×</span>
|
||||
</van-dialog>
|
||||
<p>评卷地点</p>
|
||||
</van-col>
|
||||
|
||||
<van-col span="6">
|
||||
<img @click="show6 = true" src="@/assets/imgs/xysh.svg" alt="">
|
||||
<div class="xysh-img" :class="handoffValue" v-if="show6" @click="toggleShow">
|
||||
<span @click="show6 = false">
|
||||
关闭 ✕
|
||||
</span>
|
||||
<!-- <em class="em-next"></em>-->
|
||||
</div>
|
||||
<p>校园生活</p>
|
||||
</van-col>
|
||||
|
||||
<van-col span="6" v-if="showIcon.show7">
|
||||
<img @click="show7 = true" src="../assets/imgs/zhixie.svg" alt="">
|
||||
<div class="zhixie-img" v-if="show7">
|
||||
<span @click="show7 = false">
|
||||
关闭 ✕
|
||||
</span>
|
||||
<div class="card-img">
|
||||
<img src="@/assets/orangeUi/zhixie.jpg" style="width: 100%;height: 100%">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>致谢</p>
|
||||
</van-col>
|
||||
|
||||
|
||||
<!-- <van-col span="6" v-if="showIcon.show8">-->
|
||||
<!-- <img @click="show8 = true" src="@/assets/imgs/zz.svg" alt="">-->
|
||||
<!-- <van-dialog-->
|
||||
<!-- style="height: 80%;"-->
|
||||
<!-- :overlayStyle="{ background: 'rgba(0, 0, 0, 0.8)' }"-->
|
||||
<!-- :show-confirm-button="false"-->
|
||||
<!-- cancel-button-text="长按图片保存"-->
|
||||
<!-- cancel-button-color="#e34032"-->
|
||||
<!-- v-model:show="show8" show-cancel-button>-->
|
||||
<!-- <img src="@/assets/img/ryzs.png"/>-->
|
||||
<!-- <span class="dialog-close-content" @click="show8 = false">×</span>-->
|
||||
<!-- </van-dialog>-->
|
||||
<!-- <p>证书</p>-->
|
||||
<!-- </van-col>-->
|
||||
</van-row>
|
||||
|
||||
<div class="main-bottom">
|
||||
<!-- <img src="@/assets/img/bottom.png">-->
|
||||
<!-- <img src="@/assets/img1/footer1.svg" >-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<!-- <img class="bot-img" src="@/assets/img1/footer3.svg" >-->
|
||||
<img class="bot-img" src="@/assets/orangeUi/footer_cg.svg">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onMounted, reactive, ref } from "vue";
|
||||
import { useUserStore } from "@/store";
|
||||
import api from "@/api";
|
||||
import waiTApi from "@/api/waiTApi";
|
||||
|
||||
const store = useUserStore();
|
||||
const show0 = ref(false);
|
||||
const show1 = ref(false);
|
||||
const show2 = ref(false);
|
||||
const show3 = ref(false);
|
||||
const show4 = ref(false);
|
||||
const show5 = ref(false);
|
||||
const show6 = ref(false);
|
||||
const show7 = ref(false);
|
||||
const show8 = ref(false);
|
||||
const showDitu = ref(false);
|
||||
const handoff = ref(false)
|
||||
const handoffValue = ref("xysh-img1")
|
||||
|
||||
function toggleShow() {
|
||||
if (handoff.value) {
|
||||
handoffValue.value = "xysh-img2"
|
||||
handoff.value = false
|
||||
} else {
|
||||
handoffValue.value = "xysh-img1"
|
||||
handoff.value = true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const user = store.LoginUser
|
||||
/*
|
||||
* 1. 获取用户信息
|
||||
* 2. 获取用户分组信息
|
||||
* 3. 获取用户宿舍信息
|
||||
* 4. 获取用户评卷地点信息
|
||||
* 5. 获取用户校园生活信息
|
||||
* 6. 获取用户致谢信息
|
||||
* 7. 获取用户证书信息
|
||||
* */
|
||||
const group = ref("")
|
||||
const showIcon = reactive({
|
||||
show0: false,
|
||||
show1: false,
|
||||
show2: false,
|
||||
show3: false,
|
||||
show4: false,
|
||||
show5: false,
|
||||
show6: false,
|
||||
show7: false,
|
||||
show8: false,
|
||||
})
|
||||
|
||||
const showGroup = () => {
|
||||
show3.value = true
|
||||
waiTApi.getGroup(store.LoginUser.groupId).then(res => {
|
||||
console.log(res.data.name)
|
||||
group.value = res.data.name
|
||||
|
||||
}, err => {
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
const carNum = () => {
|
||||
let carNum = store.LoginUser!.carNumber
|
||||
if (carNum) {
|
||||
var s = carNum.substring(0, 2);
|
||||
var s1 = carNum.substring(2);
|
||||
return s + '·' + s1
|
||||
} else {
|
||||
return "暂没有车牌号"
|
||||
}
|
||||
}
|
||||
|
||||
// 页面加载时获取用户信息
|
||||
//onMounted(() => {
|
||||
// api.getUser(store.getOpenId).then(res => {
|
||||
// console.log("获取到的用户信息")
|
||||
// // console.log( store.LoginUser.majorId)
|
||||
// store.setMajorId(store.LoginUser.majorId)
|
||||
// Object.assign(showIcon, res.data.data)
|
||||
// }, err => {
|
||||
// console.log(err)
|
||||
// })
|
||||
|
||||
|
||||
//});
|
||||
|
||||
function getUserInfo(majorId: number) {
|
||||
let majorName = ""
|
||||
majors.forEach(item => {
|
||||
if (item.value === majorId) {
|
||||
majorName = item.name
|
||||
}
|
||||
})
|
||||
return majorName
|
||||
}
|
||||
|
||||
const majors = [
|
||||
{
|
||||
id: 1,
|
||||
name: '语文',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '地理',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: '历史',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: '政治',
|
||||
value: 8,
|
||||
}]
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.dialog-close-content {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 0;
|
||||
font-weight: 700;
|
||||
font-size: 30px;
|
||||
//background-color: #42b983;
|
||||
color: #949494;
|
||||
}
|
||||
|
||||
.main-container {
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
background: url("@/assets/orangeUi/bj5.svg") no-repeat;
|
||||
//background: url("@/assets/img1/bj.svg") no-repeat;
|
||||
background-size: 100%;
|
||||
|
||||
.hsd-title {
|
||||
width: 100vw;
|
||||
height: 15vh;
|
||||
padding-top: 5vh;
|
||||
|
||||
//border: 1px solid red;
|
||||
img {
|
||||
width: 65%;
|
||||
margin-top: 8vh;
|
||||
}
|
||||
}
|
||||
|
||||
.head-cg {
|
||||
width: 100vw;
|
||||
height: 15vh;
|
||||
|
||||
//border: 1px solid black;
|
||||
img {
|
||||
margin-top: 5vh;
|
||||
width: 90%;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.main-content {
|
||||
margin-top: 10vh;
|
||||
width: 100vw;
|
||||
height: 10vh;
|
||||
//border: 1px solid orange;
|
||||
color: black;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.main-icon {
|
||||
width: 97vw;
|
||||
height: 20vh;
|
||||
margin: 0 auto;
|
||||
margin-top: 5vh;
|
||||
|
||||
//border: 1px solid green;
|
||||
.main-item {
|
||||
|
||||
img {
|
||||
width: 50%;
|
||||
margin-top: 15%;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: -5px;
|
||||
font-size: 0.7rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: 100vw;
|
||||
height: 20vh;
|
||||
|
||||
//border: 1px solid blue;
|
||||
img {
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.grop-by {
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
|
||||
p {
|
||||
text-align: center;
|
||||
line-height: 100px;
|
||||
font-size: initial;
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
|
||||
.txz-img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
//border: 5px solid red;
|
||||
background-image: url("@/assets/orangeUi/txz.svg");
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
/* 修改这里 */
|
||||
z-index: 999;
|
||||
|
||||
span {
|
||||
width: 30vw;
|
||||
//border: 1px solid red;
|
||||
font-weight: 700;
|
||||
color: #262626;
|
||||
font-size: 20px;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.card-pai {
|
||||
position: absolute;
|
||||
left: 8.5vw;
|
||||
top: 71vh;
|
||||
//font-size: 24px;
|
||||
font-family: 微软雅黑;
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
font-size: 35px;
|
||||
height: 2.5rem;
|
||||
width: 80%;
|
||||
opacity: 1;
|
||||
//color: rgba(141, 35, 40, 0.6);
|
||||
//color: rgba(255, 255, 255, 0.8);
|
||||
color: white;
|
||||
|
||||
font-weight: 600;
|
||||
border-radius: 132px;
|
||||
background: rgba(255, 255, 255, 1), rgba(255, 255, 255, 1);
|
||||
border: 4px solid rgba(255, 255, 255, 0.7);
|
||||
box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.1), 0px 3px 7px rgba(0, 0, 0, 0.1), 0px 12px 12px rgba(0, 0, 0, 0.09), 0px 27px 16px rgba(0, 0, 0, 0.05), 0px 47px 19px rgba(0, 0, 0, 0.01), 0px 74px 21px rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.card-tishi {
|
||||
position: absolute;
|
||||
top: 80vh;
|
||||
left: 10vw;
|
||||
text-align: left;
|
||||
width: 80vw;
|
||||
font-size: 18px;
|
||||
color: white;
|
||||
margin: 0 auto;
|
||||
text-indent: 34px;
|
||||
}
|
||||
}
|
||||
|
||||
//地图
|
||||
.ditu-img {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
background-color: white;
|
||||
z-index: 999;
|
||||
|
||||
img {
|
||||
padding-top: 30%;
|
||||
}
|
||||
|
||||
span {
|
||||
position: absolute;
|
||||
left: 80%;
|
||||
font-weight: 700;
|
||||
color: #262626;
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.zhixie-img {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
background-color: white;
|
||||
z-index: 999;
|
||||
|
||||
img {
|
||||
margin-top: 20%;
|
||||
}
|
||||
|
||||
span {
|
||||
position: absolute;
|
||||
left: 80%;
|
||||
font-weight: 700;
|
||||
color: #262626;
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.xysh-img1 {
|
||||
background: url("@/assets/orangeUi/xysh1.jpg") no-repeat center center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.xysh-img2 {
|
||||
background: url("@/assets/orangeUi/xysh2.jpg") no-repeat center center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.xysh-img {
|
||||
//background: url("@/assets/orangeUi/xysh.svg") no-repeat center;
|
||||
////background-size: cover;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: white;
|
||||
|
||||
//background: url() no-repeat;
|
||||
.card-img {
|
||||
//padding-top: 10%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
span {
|
||||
width: 30vw;
|
||||
//border: 1px solid red;
|
||||
font-weight: 700;
|
||||
color: #262626;
|
||||
font-size: 20px;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
// 下一页
|
||||
.em-next {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 10px;
|
||||
/* 将元素向上移动自身高度的一半,以居中对齐 */
|
||||
//transform: translateY(-50%);
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
border-width: 20px 20px 0 0;
|
||||
/* 创建一个向右的三角形 */
|
||||
border-color: #050505 transparent transparent transparent;
|
||||
transform: rotate(135deg);
|
||||
/* 箭头颜色为红色,其余部分透明 */
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
|
@ -12,11 +12,17 @@ enum Api {
|
|||
importExcel = '/cees/ceesWaiTeacher/importExcel',
|
||||
exportXls = '/cees/ceesWaiTeacher/exportXls',
|
||||
updateGroupUser = '/cees/ceesGroup/updateGroupUser',
|
||||
updataDormitory = 'cees/ceesWaiTeacher/updataDormitory',
|
||||
updateDormitory = 'cees/ceesWaiTeacher/updateDormitory',
|
||||
cancelCheckIn = 'cees/ceesWaiTeacher/cancelCheckIn',
|
||||
confirmCheckIn = 'cees/ceesWaiTeacher/confirmCheckIn'
|
||||
}
|
||||
|
||||
export const updataDormitory = (id, dormitory) => defHttp.get({ url: Api.updataDormitory, params: { id, dormitory } }); // ✅ 将参数包装为独立的对象 });
|
||||
export const updateDormitory = (id, dormitory) => defHttp.get({ url: Api.updateDormitory, params: { id, dormitory } }); // ✅ 将参数包装为独立的对象 });
|
||||
|
||||
//取消确认报到
|
||||
export const cancelCheckIn = (params) => defHttp.get({url: Api.cancelCheckIn, params});
|
||||
//确认报到
|
||||
export const confirmCheckIn = (params) => defHttp.get({url: Api.confirmCheckIn, params});
|
||||
//获取分组
|
||||
export const getGroup = () =>
|
||||
defHttp.get({ url: '/cees/ceesGroup/list' }).then((res) => {
|
||||
|
|
|
@ -85,75 +85,8 @@ export const columns: BasicColumn[] = [
|
|||
{
|
||||
title: '住宿信息',
|
||||
align: 'center',
|
||||
dataIndex: 'dormitory',
|
||||
dataIndex: 'dormitoryName',
|
||||
},
|
||||
|
||||
//{
|
||||
// title: '用户专业id',
|
||||
// align: 'center',
|
||||
// dataIndex: 'userMajorId',
|
||||
//},
|
||||
//{
|
||||
// title: '银行卡号',
|
||||
// align: 'center',
|
||||
// dataIndex: 'pyCard',
|
||||
//},
|
||||
//{
|
||||
// title: '饭卡',
|
||||
// align: 'center',
|
||||
// dataIndex: 'mealCard',
|
||||
//},
|
||||
|
||||
//{
|
||||
// title: '工作名称',
|
||||
// align: 'center',
|
||||
// dataIndex: 'workName',
|
||||
//},
|
||||
//{
|
||||
// title: '固定电话',
|
||||
// align: 'center',
|
||||
// dataIndex: 'workPhone',
|
||||
//},
|
||||
//{
|
||||
// title: '身份证',
|
||||
// align: 'center',
|
||||
// dataIndex: 'identityId',
|
||||
//},
|
||||
//{
|
||||
// title: '车牌号',
|
||||
// align: 'center',
|
||||
// dataIndex: 'carNumber',
|
||||
//},
|
||||
//{
|
||||
// title: '车辆是否入校',
|
||||
// align: 'center',
|
||||
// dataIndex: 'carStatus',
|
||||
//},
|
||||
//{
|
||||
// title: '是否住宿',
|
||||
// align: 'center',
|
||||
// dataIndex: 'dormitoryStatus',
|
||||
//},
|
||||
//{
|
||||
// title: '开户所在地',
|
||||
// align: 'center',
|
||||
// dataIndex: 'bankAddress',
|
||||
//},
|
||||
//{
|
||||
// title: '开户行',
|
||||
// align: 'center',
|
||||
// dataIndex: 'bankName',
|
||||
//},
|
||||
//{
|
||||
// title: '使用次数',
|
||||
// align: 'center',
|
||||
// dataIndex: 'numberuse',
|
||||
//},
|
||||
//{
|
||||
// title: '状态',
|
||||
// align: 'center',
|
||||
// dataIndex: 'status',
|
||||
//},
|
||||
];
|
||||
//查询数据
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
|
@ -423,7 +356,7 @@ export const superQuerySchema = {
|
|||
sex: { title: '性别', order: 13, view: 'text', type: 'string' },
|
||||
age: { title: '年龄', order: 14, view: 'number', type: 'number' },
|
||||
carStatus: { title: '车辆是否入校', order: 15, view: 'number', type: 'number' },
|
||||
dormitory: { title: '住宿信息', order: 16, view: 'text', type: 'string' },
|
||||
dormitoryId: { title: '住宿信息', order: 16, view: 'text', type: 'string' },
|
||||
dormitoryStatus: { title: '是否住宿', order: 17, view: 'text', type: 'string' },
|
||||
bankAddress: { title: '开户所在地', order: 18, view: 'text', type: 'string' },
|
||||
bankName: { title: '开户行', order: 19, view: 'text', type: 'string' },
|
||||
|
|
|
@ -1,15 +1,8 @@
|
|||
<template>
|
||||
<div>
|
||||
<!--引用表格-->
|
||||
<BasicTable
|
||||
@register="registerTable"
|
||||
:rowSelection="rowSelection"
|
||||
ref="tableRef"
|
||||
:expandedRowKeys="expandedKeys"
|
||||
rowKey="id"
|
||||
:expandedRowRender="renderExpandedRow"
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<BasicTable @register="registerTable" :rowSelection="rowSelection" ref="tableRef" :expandedRowKeys="expandedKeys"
|
||||
rowKey="id" :expandedRowRender="renderExpandedRow" @expand="handleExpand">
|
||||
<!--插槽:table标题-->
|
||||
<template #tableTitle>
|
||||
<a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
|
||||
|
@ -24,8 +17,7 @@
|
|||
</a-menu-item>
|
||||
</a-menu>
|
||||
</template>
|
||||
<a-button
|
||||
>批量操作
|
||||
<a-button>批量操作
|
||||
<Icon icon="mdi:chevron-down" />
|
||||
</a-button>
|
||||
</a-dropdown>
|
||||
|
@ -35,6 +27,7 @@
|
|||
<!--操作栏-->
|
||||
<template #action="{ record }">
|
||||
<TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" />
|
||||
<TableAction :actions="ConfirmRegistration(record)" />
|
||||
</template>
|
||||
<!--字段回显插槽-->
|
||||
<template #bodyCell="{ column, record, index, text }">
|
||||
|
@ -57,23 +50,18 @@
|
|||
<span v-if="column.dataIndex === 'majorId'">
|
||||
<span>{{ record.majorIdDescription }}</span>
|
||||
</span>
|
||||
<span v-if="column.dataIndex === 'dormitory'">
|
||||
<span v-if="column.dataIndex === 'dormitoryName'">
|
||||
<!-- 选择逻辑存在问题使placeholder没办法显示 -->
|
||||
<a-select
|
||||
placeholder="请选择"
|
||||
size="small"
|
||||
style="width: 120px"
|
||||
v-model:value="record.dormitory"
|
||||
:disabled="record.dormitory !== ''"
|
||||
@focus="handleFocus(record.sex, record)"
|
||||
@change="handleChange(record.userId, record.dormitory, record)"
|
||||
filterables
|
||||
>
|
||||
<a-select placeholder="请选择" size="small" style="width: 120px" v-model:value="record.dormitoryName"
|
||||
:disabled="record.dormitoryId != null" @focus="handleFocus(record.sex, record)"
|
||||
@change="handleChange(record.userId, record.dormitoryName, record)" filterables>
|
||||
<template v-if="dormOptions.length === 0">
|
||||
<a-option value="" label="加载中..." disabled />
|
||||
</template>
|
||||
|
||||
<a-option v-for="item in dormOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||
<a-select-option v-for="item in dormOptions" :key="item.value" :label="item.label" :value="item.value">{{
|
||||
item.label
|
||||
}}</a-select-option>
|
||||
|
||||
<template v-if="dormOptions.length === 0">
|
||||
<a-option value="" label="暂无数据" disabled />
|
||||
|
@ -88,248 +76,290 @@
|
|||
</template>
|
||||
|
||||
<script lang="tsx" name="cees-ceesWaiTeacher" setup>
|
||||
import { ref, reactive, computed, unref, onMounted } from 'vue';
|
||||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||
import { useModal } from '/@/components/Modal';
|
||||
import { useListPage } from '/@/hooks/system/useListPage';
|
||||
import CeesWaiTeacherModal from './components/CeesWaiTeacherModal.vue';
|
||||
import { columns, searchFormSchema, superQuerySchema, updateGroupOptions } from './CeesWaiTeacher.data';
|
||||
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, getGroup, updataDormitory } from './CeesWaiTeacher.api';
|
||||
import { selectBySex } from '/@/views/cees/dormitory/CeesDormitoryInfo.api';
|
||||
import { downloadFile } from '/@/utils/common/renderUtils';
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
const queryParam = reactive<any>({});
|
||||
const checkedKeys = ref<Array<string | number>>([]);
|
||||
const userStore = useUserStore();
|
||||
import { configStyleImportPlugin } from 'build/vite/plugin/styleImport';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { registerCoordinateSystem } from 'echarts';
|
||||
import { ref, reactive, computed, unref, onMounted } from 'vue';
|
||||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||
import { useModal } from '/@/components/Modal';
|
||||
import { useListPage } from '/@/hooks/system/useListPage';
|
||||
import CeesWaiTeacherModal from './components/CeesWaiTeacherModal.vue';
|
||||
import { columns, searchFormSchema, superQuerySchema, updateGroupOptions } from './CeesWaiTeacher.data';
|
||||
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, getGroup, updateDormitory, cancelCheckIn, confirmCheckIn } from './CeesWaiTeacher.api';
|
||||
import { selectBySex } from '/@/views/cees/dormitory/CeesDormitoryInfo.api';
|
||||
import { downloadFile } from '/@/utils/common/renderUtils';
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
const queryParam = reactive<any>({});
|
||||
const checkedKeys = ref<Array<string | number>>([]);
|
||||
const userStore = useUserStore();
|
||||
import { configStyleImportPlugin } from 'build/vite/plugin/styleImport';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { registerCoordinateSystem } from 'echarts';
|
||||
|
||||
// 定义响应式数据
|
||||
const dormOptions = ref([]);
|
||||
// 定义响应式数据
|
||||
const dormOptions = ref([]);
|
||||
|
||||
//注册model
|
||||
const [registerModal, { openModal }] = useModal();
|
||||
//注册table数据
|
||||
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||
tableProps: {
|
||||
title: '外校老师管理',
|
||||
api: list,
|
||||
columns,
|
||||
canResize: false,
|
||||
formConfig: {
|
||||
//labelWidth: 120,
|
||||
schemas: searchFormSchema,
|
||||
autoSubmitOnEnter: true,
|
||||
showAdvancedButton: true,
|
||||
fieldMapToNumber: [['majorId', ['majorId_begin', 'majorId_end']]],
|
||||
fieldMapToTime: [],
|
||||
},
|
||||
actionColumn: {
|
||||
width: 120,
|
||||
fixed: 'right',
|
||||
},
|
||||
beforeFetch: (params) => {
|
||||
return Object.assign(params, queryParam);
|
||||
},
|
||||
//注册model
|
||||
const [registerModal, { openModal }] = useModal();
|
||||
//注册table数据
|
||||
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||
tableProps: {
|
||||
title: '外校老师管理',
|
||||
api: list,
|
||||
columns,
|
||||
canResize: false,
|
||||
formConfig: {
|
||||
//labelWidth: 120,
|
||||
schemas: searchFormSchema,
|
||||
autoSubmitOnEnter: true,
|
||||
showAdvancedButton: true,
|
||||
fieldMapToNumber: [['majorId', ['majorId_begin', 'majorId_end']]],
|
||||
fieldMapToTime: [],
|
||||
},
|
||||
exportConfig: {
|
||||
name: '外校老师管理',
|
||||
url: getExportUrl,
|
||||
params: queryParam,
|
||||
actionColumn: {
|
||||
width: 120,
|
||||
fixed: 'right',
|
||||
},
|
||||
importConfig: {
|
||||
url: getImportUrl,
|
||||
success: handleSuccess,
|
||||
beforeFetch: (params) => {
|
||||
return Object.assign(params, queryParam);
|
||||
},
|
||||
},
|
||||
exportConfig: {
|
||||
name: '外校老师管理',
|
||||
url: getExportUrl,
|
||||
params: queryParam,
|
||||
},
|
||||
importConfig: {
|
||||
url: getImportUrl,
|
||||
success: handleSuccess,
|
||||
},
|
||||
});
|
||||
// 指定默认展开的行(根据 rowKey 属性传入行的 key 值)
|
||||
const expandedKeys = ref<string[]>(['1']); // 默认展开第一行
|
||||
// 定义展开行内容的渲染函数
|
||||
const renderExpandedRow = (record: Record<string, any>) => {
|
||||
return (
|
||||
<a-descriptions column={2}>
|
||||
<a-descriptions-item label="身份证号"> {record.record.identityId} </a-descriptions-item>
|
||||
<a-descriptions-item label="银行卡号"> {record.record.pyCard} </a-descriptions-item>
|
||||
<a-descriptions-item label="工作单位"> {record.record.workName} </a-descriptions-item>
|
||||
<a-descriptions-item label="开户所在地"> {record.record.bankAddress} </a-descriptions-item>
|
||||
<a-descriptions-item label="单位电话"> {record.record.workPhone} </a-descriptions-item>
|
||||
<a-descriptions-item label="开户行"> {record.record.bankName} </a-descriptions-item>
|
||||
<a-descriptions-item label="车牌号"> {record.record.carNumber} </a-descriptions-item>
|
||||
<a-descriptions-item label="饭卡号"> {record.record.mealCard} </a-descriptions-item>
|
||||
</a-descriptions>
|
||||
);
|
||||
};
|
||||
// 监听展开/收起事件,更新 expandedKeys
|
||||
const handleExpand = (expanded: boolean, record: Record<string, any>) => {
|
||||
console.log('展开/收起', expanded, record);
|
||||
if (expanded) {
|
||||
if (!expandedKeys.value.includes(record.id)) {
|
||||
expandedKeys.value.push(record.id);
|
||||
}
|
||||
} else {
|
||||
expandedKeys.value = expandedKeys.value.filter((key) => key !== record.id);
|
||||
}
|
||||
};
|
||||
const [registerTable, { reload }, { rowSelection, selectedRowKeys }] = tableContext;
|
||||
|
||||
// 在组件加载时获取分组数据
|
||||
const groupOptions = ref<{ label: string; value: number }[]>([]);
|
||||
|
||||
onMounted(async () => {
|
||||
console.log('组件已加载');
|
||||
try {
|
||||
const res = await getGroup();
|
||||
console.log('获取分组数据成功:', res);
|
||||
groupOptions.value = res.map((group) => ({
|
||||
label: group.name, // 假设分组名称字段为 name
|
||||
value: group.id, // 假设分组 ID 字段为 id
|
||||
}));
|
||||
console.log('分组数据:', groupOptions.value);
|
||||
updateGroupOptions.updateGroupOptions(groupOptions.value);
|
||||
} catch (error) {
|
||||
console.error('获取分组数据失败:', error);
|
||||
}
|
||||
});
|
||||
|
||||
// 高级查询配置
|
||||
const superQueryConfig = reactive(superQuerySchema);
|
||||
|
||||
/**
|
||||
* 高级查询事件
|
||||
*/
|
||||
function handleSuperQuery(params) {
|
||||
Object.keys(params).map((k) => {
|
||||
queryParam[k] = params[k];
|
||||
});
|
||||
// 指定默认展开的行(根据 rowKey 属性传入行的 key 值)
|
||||
const expandedKeys = ref<string[]>(['1']); // 默认展开第一行
|
||||
// 定义展开行内容的渲染函数
|
||||
const renderExpandedRow = (record: Record<string, any>) => {
|
||||
return (
|
||||
<a-descriptions column={2}>
|
||||
<a-descriptions-item label="身份证号"> {record.record.identityId} </a-descriptions-item>
|
||||
<a-descriptions-item label="银行卡号"> {record.record.pyCard} </a-descriptions-item>
|
||||
<a-descriptions-item label="工作单位"> {record.record.workName} </a-descriptions-item>
|
||||
<a-descriptions-item label="开户所在地"> {record.record.bankAddress} </a-descriptions-item>
|
||||
<a-descriptions-item label="单位电话"> {record.record.workPhone} </a-descriptions-item>
|
||||
<a-descriptions-item label="开户行"> {record.record.bankName} </a-descriptions-item>
|
||||
<a-descriptions-item label="车牌号"> {record.record.carNumber} </a-descriptions-item>
|
||||
<a-descriptions-item label="饭卡号"> {record.record.mealCard} </a-descriptions-item>
|
||||
</a-descriptions>
|
||||
);
|
||||
};
|
||||
// 监听展开/收起事件,更新 expandedKeys
|
||||
const handleExpand = (expanded: boolean, record: Record<string, any>) => {
|
||||
console.log('展开/收起', expanded, record);
|
||||
if (expanded) {
|
||||
if (!expandedKeys.value.includes(record.id)) {
|
||||
expandedKeys.value.push(record.id);
|
||||
}
|
||||
reload();
|
||||
}
|
||||
/**
|
||||
* 新增事件
|
||||
*/
|
||||
function handleAdd() {
|
||||
openModal(true, {
|
||||
isUpdate: false,
|
||||
showFooter: true,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 编辑事件
|
||||
*/
|
||||
function handleEdit(record: Recordable) {
|
||||
openModal(true, {
|
||||
record,
|
||||
isUpdate: true,
|
||||
showFooter: true,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 详情
|
||||
*/
|
||||
function handleDetail(record: Recordable) {
|
||||
openModal(true, {
|
||||
record,
|
||||
isUpdate: true,
|
||||
showFooter: false,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 删除事件
|
||||
*/
|
||||
async function handleDelete(record) {
|
||||
await deleteOne({ id: record.id }, handleSuccess);
|
||||
}
|
||||
/**
|
||||
* 批量删除事件
|
||||
*/
|
||||
async function batchHandleDelete() {
|
||||
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
|
||||
}
|
||||
/**
|
||||
* 成功回调
|
||||
*/
|
||||
function handleSuccess() {
|
||||
(selectedRowKeys.value = []) && reload();
|
||||
}
|
||||
/**
|
||||
* 操作栏
|
||||
*/
|
||||
function getTableAction(record) {
|
||||
const actions = [
|
||||
{
|
||||
label: '编辑',
|
||||
onClick: handleEdit.bind(null, record),
|
||||
},
|
||||
];
|
||||
|
||||
return actions;
|
||||
}
|
||||
function ConfirmRegistration(record) {
|
||||
const actions = [{}];
|
||||
// 添加“确认报到”和“取消确认”按钮
|
||||
if (record.status === 0) {
|
||||
actions.push({
|
||||
label: '取消确认',
|
||||
color: 'error', // 按钮颜色
|
||||
onClick: () => updateStatus(record.id, 'un'), // 点击事件
|
||||
});
|
||||
} else {
|
||||
actions.push({
|
||||
label: '确认报到',
|
||||
color: 'primary', // 按钮颜色
|
||||
onClick: () => updateStatus(record.id), // 点击事件
|
||||
});
|
||||
}
|
||||
return actions;
|
||||
}
|
||||
|
||||
async function updateStatus(id, action = '') {
|
||||
try {
|
||||
let params = { id };
|
||||
if (action === 'un') {
|
||||
// 取消确认的逻辑
|
||||
console.log(`取消确认报到,ID: ${id}`);
|
||||
// 调用 API 取消确认
|
||||
await cancelCheckIn(params);
|
||||
} else {
|
||||
expandedKeys.value = expandedKeys.value.filter((key) => key !== record.id);
|
||||
// 确认报到的逻辑
|
||||
console.log(`确认报到,ID: ${id}`);
|
||||
// 调用 API 确认报到
|
||||
await confirmCheckIn(params);
|
||||
}
|
||||
};
|
||||
const [registerTable, { reload }, { rowSelection, selectedRowKeys }] = tableContext;
|
||||
|
||||
// 在组件加载时获取分组数据
|
||||
const groupOptions = ref<{ label: string; value: number }[]>([]);
|
||||
|
||||
onMounted(async () => {
|
||||
console.log('组件已加载');
|
||||
try {
|
||||
const res = await getGroup();
|
||||
console.log('获取分组数据成功:', res);
|
||||
groupOptions.value = res.map((group) => ({
|
||||
label: group.name, // 假设分组名称字段为 name
|
||||
value: group.id, // 假设分组 ID 字段为 id
|
||||
}));
|
||||
console.log('分组数据:', groupOptions.value);
|
||||
updateGroupOptions.updateGroupOptions(groupOptions.value);
|
||||
} catch (error) {
|
||||
console.error('获取分组数据失败:', error);
|
||||
}
|
||||
});
|
||||
|
||||
// 高级查询配置
|
||||
const superQueryConfig = reactive(superQuerySchema);
|
||||
|
||||
/**
|
||||
* 高级查询事件
|
||||
*/
|
||||
function handleSuperQuery(params) {
|
||||
Object.keys(params).map((k) => {
|
||||
queryParam[k] = params[k];
|
||||
});
|
||||
// 刷新表格数据
|
||||
reload();
|
||||
} catch (error) {
|
||||
console.error('操作失败:', error);
|
||||
}
|
||||
/**
|
||||
* 新增事件
|
||||
*/
|
||||
function handleAdd() {
|
||||
openModal(true, {
|
||||
isUpdate: false,
|
||||
showFooter: true,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 编辑事件
|
||||
*/
|
||||
function handleEdit(record: Recordable) {
|
||||
openModal(true, {
|
||||
record,
|
||||
isUpdate: true,
|
||||
showFooter: true,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 详情
|
||||
*/
|
||||
function handleDetail(record: Recordable) {
|
||||
openModal(true, {
|
||||
record,
|
||||
isUpdate: true,
|
||||
showFooter: false,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 删除事件
|
||||
*/
|
||||
async function handleDelete(record) {
|
||||
await deleteOne({ id: record.id }, handleSuccess);
|
||||
}
|
||||
/**
|
||||
* 批量删除事件
|
||||
*/
|
||||
async function batchHandleDelete() {
|
||||
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
|
||||
}
|
||||
/**
|
||||
* 成功回调
|
||||
*/
|
||||
function handleSuccess() {
|
||||
(selectedRowKeys.value = []) && reload();
|
||||
}
|
||||
/**
|
||||
* 操作栏
|
||||
*/
|
||||
function getTableAction(record) {
|
||||
return [
|
||||
{
|
||||
label: '编辑',
|
||||
onClick: handleEdit.bind(null, record),
|
||||
}
|
||||
/**
|
||||
* 下拉操作栏
|
||||
*/
|
||||
function getDropDownAction(record) {
|
||||
return [
|
||||
{
|
||||
label: '详情',
|
||||
onClick: handleDetail.bind(null, record),
|
||||
},
|
||||
{
|
||||
label: '删除',
|
||||
popConfirm: {
|
||||
title: '是否确认删除',
|
||||
confirm: handleDelete.bind(null, record),
|
||||
placement: 'topLeft',
|
||||
},
|
||||
];
|
||||
}
|
||||
/**
|
||||
* 下拉操作栏
|
||||
*/
|
||||
function getDropDownAction(record) {
|
||||
return [
|
||||
{
|
||||
label: '详情',
|
||||
onClick: handleDetail.bind(null, record),
|
||||
},
|
||||
{
|
||||
label: '删除',
|
||||
popConfirm: {
|
||||
title: '是否确认删除',
|
||||
confirm: handleDelete.bind(null, record),
|
||||
placement: 'topLeft',
|
||||
},
|
||||
},
|
||||
];
|
||||
}
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
// 定义 handleFocus 函数
|
||||
async function handleFocus(sex, record) {
|
||||
console.log('dormitory:', record.dormitory);
|
||||
console.log('性别:', sex);
|
||||
try {
|
||||
const response = await selectBySex({ sex });
|
||||
console.log('响应:', response);
|
||||
// 检查响应是否为数组
|
||||
if (Array.isArray(response)) {
|
||||
//response.forEach((dormitory, index) => {
|
||||
// console.log(`宿舍 ${index + 1}:`);
|
||||
// console.log(' 宿舍状态:', dormitory.dormitoryStatus);
|
||||
// console.log(' 宿舍类型:', dormitory.dormitoryType);
|
||||
// console.log(' 宿舍名称:', dormitory.dormitory);
|
||||
// console.log(' 组织代码:', dormitory.sysOrgCode);
|
||||
// console.log(' 宿舍编号:', dormitory.dormitoryNum);
|
||||
//});
|
||||
dormOptions.value = response.map((dormitory) => ({
|
||||
label: dormitory.dormitory,
|
||||
value: dormitory.dormitory,
|
||||
}));
|
||||
} else {
|
||||
console.error('预期的响应应该是一个数组。');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('在 handleFocus 中发生错误:', error);
|
||||
// 定义 handleFocus 函数
|
||||
async function handleFocus(sex, record) {
|
||||
console.log('dormitory11:', record.dormitoryId);
|
||||
console.log('性别:', sex);
|
||||
try {
|
||||
const response = await selectBySex({ sex });
|
||||
console.log('响应:', response);
|
||||
// 检查响应是否为数组
|
||||
if (Array.isArray(response)) {
|
||||
//response.forEach((dormitory, index) => {
|
||||
// console.log(`宿舍 ${index + 1}:`);
|
||||
// console.log(' 宿舍状态:', dormitory.dormitoryStatus);
|
||||
// console.log(' 宿舍类型:', dormitory.dormitoryType);
|
||||
// console.log(' 宿舍名称:', dormitory.dormitory);
|
||||
// console.log(' 组织代码:', dormitory.sysOrgCode);
|
||||
// console.log(' 宿舍编号:', dormitory.dormitoryNum);
|
||||
//});
|
||||
dormOptions.value = response.map((dormitory) => ({
|
||||
label: dormitory.dormitory,
|
||||
value: dormitory.id,
|
||||
}));
|
||||
} else {
|
||||
console.error('预期的响应应该是一个数组。');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('在 handleFocus 中发生错误:', error);
|
||||
}
|
||||
// 定义 handleFocus 函数
|
||||
async function handleChange(userId, dormitory, record) {
|
||||
console.log('userId', userId);
|
||||
console.log('dormitory', dormitory);
|
||||
let params = {
|
||||
id: userId,
|
||||
dormitory: dormitory,
|
||||
};
|
||||
try {
|
||||
// 正确调用方式(传递独立参数)
|
||||
const response = await updataDormitory(userId, dormitory);
|
||||
console.log('响应:', response);
|
||||
} catch (error) {
|
||||
console.error('在 handleFocus 中发生错误:', error);
|
||||
}
|
||||
}
|
||||
// 定义 handleFocus 函数
|
||||
async function handleChange(userId, dormitory, record) {
|
||||
console.log("userId", userId)
|
||||
console.log("dormitory", dormitory)
|
||||
console.log("record", record)
|
||||
let params = {
|
||||
id: userId,
|
||||
dormitory: dormitory,
|
||||
};
|
||||
try {
|
||||
// 正确调用方式(传递独立参数)
|
||||
const response = await updateDormitory(userId, dormitory);
|
||||
console.log('响应:', response);
|
||||
} catch (error) {
|
||||
console.error('在 handleFocus 中发生错误:', error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.ant-select .ant-input__inner::placeholder {
|
||||
color: #999 !important;
|
||||
}
|
||||
.ant-select .ant-input__inner::placeholder {
|
||||
color: #999 !important;
|
||||
}
|
||||
</style>
|
||||
|
|
Loading…
Reference in New Issue