新增行政人员页面

This commit is contained in:
Xubx 2025-04-28 18:31:23 +08:00
parent 8280137f43
commit 1ae524e2ea
3 changed files with 362 additions and 0 deletions

View File

@ -57,6 +57,15 @@ export const routes = [
border: false,
},
},
{
name: 'leaderShip',
path: '/leaderShip',
component: () => import('@/views/leaderShip.vue'),
meta: {
title: '哈尔滨师范大学评卷报名系统',
border: false,
},
},
],
},
// 匹配不到重定向会主页

View File

@ -220,6 +220,46 @@
.catch(() => {
//
});
} else if (res.result.identity === 1) {
//
showConfirmDialog({
title: '工号确认',
allowHtml: true,
confirmButtonColor: '#8D2328',
message: `<p style="text-align: left;text-indent:24px"><span style="font-weight: 700">${res.result.userName}</span>同志已在2024年哈尔滨师范大学评卷数据库中检索到您的信息,请点击确认查看您的分工。</p>`,
})
.then(() => {
checkUser(code).then((res) => {
if (res.result.code == 500) {
loading.value = false;
show.value = false;
store.logout();
alert(res.result.message);
return;
}
//
if (res.result.status == '1') {
showNotify({ type: 'success', message: '登录成功' });
loading.value = false;
show.value = false;
store.login(res.result);
router.push(res.result.router);
}
//
if (res.result.status == '2') {
showNotify({ type: 'success', message: '登录成功' });
loading.value = false;
show.value = false;
localStorage.clear();
store.login(res.result);
store.setUserId(res.result.userId);
store.setGroupId(res.result.groupId);
router.push(res.result.router);
}
});
})
.catch(() => {});
}
}
});

313
src/views/leaderShip.vue Normal file
View File

@ -0,0 +1,313 @@
<template>
<div class="main-container">
<div class="hsd-title">
<img src="@/assets/orangeUi/logo.svg" alt="" />
</div>
<div class="main-text">
<div class="main-page">
<p
><span style="color: black">{{ userInfo.userName }}</span> 同志</p
>
<div v-if="userInfo.beforeDuty">
<p style="text-indent: 2em">2023您在哈尔滨师范大学评卷点</p>
<p v-for="(item, index) in beforeData" :key="index + 1"
><span style="font-weight: 600">{{ item.group }}</span
>中担任<span style="font-weight: 600">{{ item.duty }}</span
>职务</p
>
</div>
<div v-if="userInfo.duty">
<p style="text-indent: 2em">本次您在哈尔滨师范大学评卷点</p>
<p v-for="(item, index) in nowData" :key="index"
><span style="font-weight: 600">{{ item.duty }}</span
>中担任<span style="font-weight: 600">{{ item.group }}</span
>职务</p
>
</div>
<p style="text-indent: 2em"> 您的信息已在我校2024年评卷人员数据库存档感谢您对本次评卷工作的支持 </p>
</div>
</div>
<div class="main-icon">
<div class="main-item">
<van-row>
<van-col span="8">
<img @click="show1 = true" src="../assets/imgs/ditu.svg" alt="" />
<div class="ditu-img" v-if="show1">
<span @click="show1 = false"> 关闭&ensp; </span>
<div class="card-img">
<img src="@/assets/orangeUi/ditu.jpg" style="width: 100%; height: 100%" />
</div>
</div>
<p>师大地图</p>
</van-col>
<van-col span="8">
<img @click="show6 = true" src="@/assets/imgs/xysh.svg" alt="" />
<div class="xysh-img" v-if="show6">
<span @click="show6 = false"> 关闭&ensp; </span>
</div>
<p>校园生活</p>
</van-col>
<van-col span="8">
<img @click="show7 = true" src="../assets/imgs/zhixie.svg" alt="" />
<div class="zhixie-img" v-if="show7">
<span @click="show7 = false"> 关闭&ensp; </span>
<div class="card-img">
<img src="@/assets/orangeUi/zhixie.jpg" style="width: 100%; height: 100%" />
</div>
</div>
<p>致谢</p>
</van-col>
</van-row>
</div>
</div>
<div class="footer">
<img class="bot-img" src="@/assets/orangeUi/index_footer.svg" />
</div>
</div>
</template>
<script setup lang="ts">
import { onMounted, reactive, ref } from 'vue';
import { getUser } from '@/api';
import { useUserStore } from '@/store';
const store = useUserStore();
const show1 = ref(false);
const show6 = ref(false);
const show7 = ref(false);
let userInfo = reactive({
userName: '', //
duty: '',
beforeDuty: '',
beforeGroupLevel: '',
groupLevel: '',
});
const showIcon = reactive({
show1: false,
show6: false,
show7: false,
});
let beforeData = reactive([]); // 23
let nowData = reactive([]); // 24
//
onMounted(() => {
getUser(store.getUserId).then(
(res) => {
console.log('获取到的用户信息', res);
Object.assign(userInfo, res.result.user); // 使 Object.assign
Object.assign(showIcon, res.result);
// 23
if (userInfo.beforeGroupLevel && userInfo.beforeDuty) {
//
let beforeGroupLevelArr = userInfo.beforeGroupLevel.split('|');
//
let beforeDutyArr = userInfo.beforeDuty.split('|');
beforeGroupLevelArr.forEach((item, index) => {
beforeData.push({
group: beforeGroupLevelArr[index],
duty: beforeDutyArr[index],
});
});
}
// 24
if (userInfo.groupLevel && userInfo.duty) {
//
let groupArr = userInfo.groupLevel.split('|');
//
let dutyArr = userInfo.duty.split('|');
dutyArr.forEach((item, index) => {
nowData.push({
group: dutyArr[index],
duty: groupArr[index],
});
});
}
console.log(userInfo, 'userInfo');
},
(err) => {
console.log(err);
},
);
});
</script>
<style scoped lang="scss">
//
.main-container {
height: 100vh;
width: 100vw;
background: url('@/assets/orangeUi/bj5.svg') no-repeat;
background-size: cover;
//display: flex;
//flex-direction: column;
align-items: center;
justify-content: space-between;
.hsd-title {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
//padding-top: 20px; //
img {
width: 65%;
margin-top: 5vh;
}
}
.main-text {
//border: 1px solid #1800f5;
width: 100vw;
//height: 28vh;
.main-page {
width: 95vw;
//margin-top: 15px;
// radius10px10px
border-radius: 10px;
box-shadow: 0 5px 10px 10px rgba(0, 0, 0, 0.2);
background-size: 100%;
margin: 50px auto;
margin-top: 10;
color: #180b0e;
font-weight: 500;
font-size: 27px;
text-align: left;
padding-bottom: 10px;
p {
all: unset; /* 所有属性重置为默认值 */
//text-indent: 2em;
//margin: 0 30px;
text-align: left;
line-height: 1.7;
padding: 0;
padding-left: 23px;
margin: 0;
display: block;
span {
font-weight: 700;
//color: red;
text-decoration: underline;
}
}
span {
text-align: center;
font-weight: 700;
}
}
}
//icon
.main-icon {
//width: 100vw;
//height: 20vh;
//border: 1px solid #8D2328;
//position: absolute;
width: 97vw;
height: 20vh;
text-align: center;
.main-item {
img {
width: 40%;
margin-top: 15%;
}
p {
margin-top: -5px;
font-size: 0.7rem;
font-weight: 600;
}
//
.ditu-img {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
background-color: white;
z-index: 999;
img {
margin-top: 50%;
}
span {
position: absolute;
left: 80%;
font-weight: 700;
color: #262626;
font-size: 20px;
}
}
//
.xysh-img {
background: url('@/assets/orangeUi/xysh.jpg') no-repeat center center;
background-size: cover;
//background: url("@/assets/orangeUi/xysh.svg") no-repeat center;
////background-size: cover;
position: fixed;
z-index: 999;
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;
}
}
.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;
}
}
}
}
//
.footer {
//position: absolute;
//bottom: 0;
margin-top: 5vh;
width: 100%;
height: 20vh;
display: flex;
justify-content: center;
align-items: center;
//border: 1px solid #000;
.bot-img {
width: 100%;
height: 100%;
}
}
}
</style>