YingXingAI/pages/login/roleSelection.vue

243 lines
6.3 KiB
Vue
Raw Normal View History

2025-06-30 14:43:02 +08:00
<template>
<view class="flex-col page">
<u-navbar
:custom-back="backFn"
:background="background"
:border-bottom="false"
title=""
></u-navbar>
<view>
<view class="title">
<h3>请选择登录角色</h3>
<text class="tips"
>温馨提示因为系统中存在多个角色请选择角色后再登录</text
>
</view>
<view class="selectList">
<view
class="item flex-row"
:class="{ 'item-selected': [0,2].includes(vuex_user.userType) }"
@click="goStudent"
>
<view class="name">
<text class="text">我是学生</text>
<text class="text text-en">Student</text>
</view>
<view class="student"></view>
</view>
<view
class="item flex-row"
:class="{ 'item-selected': vuex_user.userType == '1' }"
@click="goTeacher"
>
<view class="name">
<text class="text">我是教师</text>
<text class="text text-en">Teacher</text>
</view>
<view class="teacher"></view>
</view>
<!-- <view
class="item flex-row"
:class="{ 'item-selected': vuex_user.userType == '2' }"
@click="goGraduate"
>
<view class="name">
<text class="text">我是毕业生</text>
<text class="text text-en">Graduate</text>
</view>
<view class="graduate"></view>
</view> -->
</view>
</view>
</view>
</template>
<script>
import uButton from "../../uview-ui/components/u-button/u-button.vue";
export default {
components: { uButton },
data() {
return {
background: {
backgroundColor: "transparent",
},
source: "",
userRole: uni.getStorageSync("role"),
};
},
onLoad(e) {
console.log(e, "e");
this.source = e.source;
},
methods: {
backFn() {
console.log(this.source, "source---");
if (this.source === "my") {
uni.switchTab({
url: "/pages/my/my/my",
});
return;
}
if (this.source === "login") {
this.$u.vuex("vuex_msgList", "");
this.$u.vuex("vuex_user", "");
this.$u.vuex("vuex_token", "");
this.$u.vuex("vuex_userInfo", "");
uni.clearStorage();
this.$u.route({
url: "/pages/login/login/login",
});
return;
}
uni.navigateBack();
},
async goTeacher() {
const res = await this.$u.apiList.SelectUserTypeApi();
console.log(res, "res---");
const jzgFlag = res.jzgFlag;
// const studentFlag = res.studentFlag
if (jzgFlag === false) {
uni.setStorageSync("role", "teacher");
uni.navigateTo({
url: "/pages/login/teacherCertification",
});
return;
}
const req = {
userType: 1,
};
const result = await this.$u.apiList.UpdateUserTypeApi(req);
console.log(result, "result---");
this.vuex_user.userType = 1;
uni.switchTab({
url: "/pages/my/my/my",
});
},
async goStudent() {
const res = await this.$u.apiList.SelectUserTypeApi();
console.log(res, "res---");
// const jzgFlag = res.jzgFlag;
const studentFlag = res.studentFlag;
if (studentFlag === false) {
uni.setStorageSync("role", "student");
uni.navigateTo({
url: "/pages/login/perfect/perfect",
});
return;
}
const req = {
userType: 0,
};
const result = await this.$u.apiList.UpdateUserTypeApi(req);
console.log(result, "result---");
this.vuex_user.userType = 0;
uni.switchTab({
url: "/pages/my/my/my",
});
},
async goGraduate() {
uni.navigateTo({
url: "/pages/login/graduateCertification/graduateCertification",
});
// uni.$u.toast("功能开发中");
},
},
};
</script>
<style lang="scss" scoped>
.page {
background: linear-gradient(
0deg,
rgba(80, 123, 244, 0) 80%,
rgba(95, 147, 238, 0.3) 100%
);
height: 100%;
.button {
margin: 0.6rem 0.15rem 0;
}
}
.selectList {
width: calc(100% - 30rpx);
margin: 0 auto;
.item {
height: 278rpx;
padding: 15rpx;
margin-bottom: 15rpx;
box-shadow: 0rpx 20rpx 40rpx 0rpx rgba(0, 0, 0, 0.05);
border-radius: 32rpx;
border: 4rpx solid #e7ecf0;
.name {
width: 60%;
display: flex;
justify-content: center;
// align-items: center;
flex-direction: column;
padding-top: 20rpx;
padding-left: 100rpx;
.text {
margin-top: 10rpx;
font-size: 48rpx;
font-weight: bold;
color: #333;
// margin-right: 200rpx;
letter-spacing: 2rpx;
}
.text-en {
font-size: 40rpx;
color: #666;
letter-spacing: 2rpx;
font-weight: normal;
}
}
}
.item-selected {
border: 4rpx solid #8ad3fd;
}
}
.title {
width: calc(100% - 60rpx);
margin: 70rpx auto 100rpx;
h3 {
font-weight: 800;
font-size: 48rpx;
color: #000;
line-height: 60rpx;
}
.tips {
font-weight: 500;
font-size: 24rpx;
color: #666666;
}
}
.teacher {
width: 256rpx;
height: 256rpx;
-moz-background-image: url("/static/common/img/teacher.png");
-webkit-background-image: url("/static/common/img/teacher.png");
background-image: url("/static/common/img/teacher.png");
background-repeat: no-repeat;
background-size: cover;
}
.student {
width: 256rpx;
height: 256rpx;
-moz-background-image: url("/static/common/img/student.png");
-webkit-background-image: url("/static/common/img/student.png");
background-image: url("/static/common/img/student.png");
background-repeat: no-repeat;
background-size: cover;
}
.graduate {
width: 256rpx;
height: 256rpx;
-moz-background-image: url("/static/common/img/graduate.png");
-webkit-background-image: url("/static/common/img/graduate.png");
background-image: url("/static/common/img/graduate.png");
background-repeat: no-repeat;
background-size: cover;
}
</style>