feat: 更新登录逻辑,支持教师和学生的不同登录方式

This commit is contained in:
yangzhe 2025-07-30 16:32:38 +08:00
parent 53f129a355
commit 48c94b0905
5 changed files with 322 additions and 213 deletions

View File

@ -36,11 +36,12 @@ export default {
}); });
if (!that.vuex_token) { if (!that.vuex_token) {
const type = that.vuex_userType || 0; // 0: 1:
this.$u.vuex("vuex_user", ""); this.$u.vuex("vuex_user", "");
this.$u.vuex("vuex_token", ""); this.$u.vuex("vuex_token", "");
uni.clearStorage(); uni.clearStorage();
uni.reLaunch({ uni.reLaunch({
url: "/pages/login/login/index", url: `/pages/login/login/index?type=${type}`,
}); });
return; return;
} }

View File

@ -1,172 +1,220 @@
// 此处第二个参数vm就是我们在页面使用的this你可以通过vm获取vuex等操作 // 此处第二个参数vm就是我们在页面使用的this你可以通过vm获取vuex等操作
const install = (Vue, vm) => { const install = (Vue, vm) => {
// ******** // ********
// 获取教师信息 // 获取教师信息
let getTeacherInfo = (params = {}) => vm.$u.get('api/BasicDataMaintenance/GetTeacher', params); let getTeacherInfo = (params = {}) =>
vm.$u.get("api/BasicDataMaintenance/GetTeacher", params);
let updateTeacherInfo = (params = {}) => vm.$u.post('api/BasicDataMaintenance/UpdateTeacher', params); let updateTeacherInfo = (params = {}) =>
vm.$u.post("api/BasicDataMaintenance/UpdateTeacher", params);
let getData = (params = {}) => vm.$u.get('api/BasicDataMaintenance/GetData', params); let getData = (params = {}) =>
vm.$u.get("api/BasicDataMaintenance/GetData", params);
// 登录 // 登录
let LoginApp = (params = {}) => vm.$u.post('api/Token/LoginApp', params) let LoginApp = (params = {}) => vm.$u.post("api/Token/LoginApp", params);
// 注册 // 注册
let RegisterUser = (params = {}) => vm.$u.post('api/Token/RegisterUser', params); let RegisterUser = (params = {}) =>
// 基础资料以及保存用户头像 vm.$u.post("api/Token/RegisterUser", params);
let saveUserInfo = (params = {}) => vm.$u.post('app/User/UploadingFormFileHead', params); // 基础资料以及保存用户头像
// 更新用户定位信息 let saveUserInfo = (params = {}) =>
let upPosition = (params = {}) => vm.$u.post('app/Position/InsertPosition', params); vm.$u.post("app/User/UploadingFormFileHead", params);
// 获取用户当前定位信息 // 更新用户定位信息
let getPosition = (params = {}) => vm.$u.get('app/Position/GetPositionByUser', { let upPosition = (params = {}) =>
userId: vm.vuex_user.id vm.$u.post("app/Position/InsertPosition", params);
// 获取用户当前定位信息
let getPosition = (params = {}) =>
vm.$u.get("app/Position/GetPositionByUser", {
userId: vm.vuex_user.id,
}); });
// 获取所有学校 // 获取所有学校
let GetAllSchool = (params = {}) => vm.$u.get('app/User/GetSchoolList', params); let GetAllSchool = (params = {}) =>
//获取首页地图信息 vm.$u.get("app/User/GetSchoolList", params);
let HomeMap = (params = {}) => vm.$u.get('/app/User/HomeMap', params); //获取首页地图信息
//修改密码 let HomeMap = (params = {}) => vm.$u.get("/app/User/HomeMap", params);
let ChangePassword = (params = {}) => vm.$u.post('app/User/ChangePassword', params); //修改密码
//修改密码 let ChangePassword = (params = {}) =>
let myChangePassword = (params = {}) => vm.$u.post('app/My/ChangePassword', params); vm.$u.post("app/User/ChangePassword", params);
// 获取搜索页面相关信息 //修改密码
let SearchInfo = (params = {}) => vm.$u.get('app/User/SearchRelevant', params); let myChangePassword = (params = {}) =>
//获取搜索结果页面 vm.$u.post("app/My/ChangePassword", params);
let getSearch = (params = {}) => vm.$u.get('app/User/GetSearchList', params); // 获取搜索页面相关信息
// 获取用户信息 let SearchInfo = (params = {}) =>
let getUserInfo = (params = {}) => vm.$u.get('app/User/HomePage', params); vm.$u.get("app/User/SearchRelevant", params);
// 获取校友帮帮列表 //获取搜索结果页面
let GetHelpList = (params = {}) => vm.$u.get('app/HelpArticle/GetHelpArticleListByKey', params); let getSearch = (params = {}) => vm.$u.get("app/User/GetSearchList", params);
// 获取学校资讯 // 获取用户信息
let GetSchoolList = (params = {}) => vm.$u.get('app/AlumnRange/AlumnRangeSchool', params); let getUserInfo = (params = {}) => vm.$u.get("app/User/HomePage", params);
//获取最新的用户信息(更新用户数据) // 获取校友帮帮列表
let getUser = (params = {}) => vm.$u.get('app/User/GetUser', {userId: vm.vuex_user.id}).then(res => { let GetHelpList = (params = {}) =>
vm.$u.get('/app/User/GetUserSchool').then(ress => { vm.$u.get("app/HelpArticle/GetHelpArticleListByKey", params);
// res.isAttestationGLY = ress.isAttestationGLY // 获取学校资讯
// res.isAttestationJZG = ress.isAttestationJZG let GetSchoolList = (params = {}) =>
// res.isAttestationQY = ress.isAttestationQY vm.$u.get("app/AlumnRange/AlumnRangeSchool", params);
// res.isAttestationXY = res.isAttestationXY //获取最新的用户信息(更新用户数据)
// res.isAttestationZXS = ress.isAttestationZXS let getUser = (params = {}) =>
res.schoolId = ress.items.schoolId vm.$u.get("app/User/GetUser", { userId: vm.vuex_user.id }).then((res) => {
vm.$u.vuex('vuex_user', {...res.user,...res.userExtension}) vm.$u.get("/app/User/GetUserSchool").then((ress) => {
vm.$u.vuex('vuex_user_hobby', res.lableList) // res.isAttestationGLY = ress.isAttestationGLY
}) // res.isAttestationJZG = ress.isAttestationJZG
}) // res.isAttestationQY = ress.isAttestationQY
//获取用户消息列表 // res.isAttestationXY = res.isAttestationXY
let getcharList = (params = {}) => vm.$u.get('app/Chat/GetUserMessageList', params); // res.isAttestationZXS = ress.isAttestationZXS
//获取用户获取关注列表 res.schoolId = ress.items.schoolId;
let getFollowList = (params = {}) => vm.$u.get('app/Chat/GetFollowList', {id: vm.vuex_user.id}); vm.$u.vuex("vuex_user", { ...res.user, ...res.userExtension });
// 获取系统消息列表 vm.$u.vuex("vuex_user_hobby", res.lableList);
let getSysList = (params = {}) => vm.$u.get('app/Chat/GetSystemMessageList', {id: vm.vuex_user.id}); });
//获取管理消息列表 });
let getAdminList = (params = {}) => vm.$u.get('app/Chat/GetManageMessageList', {schoolId: vm.vuex_user.id}); //获取用户消息列表
//获取互动信息列表 let getcharList = (params = {}) =>
let getinteractionList = (params) => vm.$u.get('app/Chat/GetInterMessageList', {id: vm.vuex_user.id, type: params}); vm.$u.get("app/Chat/GetUserMessageList", params);
//校友找找推荐列表 //获取用户获取关注列表
let getAlumnSearch = (params = {}) => vm.$u.get('app/AlumnRange/AlumnSearch', params); let getFollowList = (params = {}) =>
//获取聊天记录 vm.$u.get("app/Chat/GetFollowList", { id: vm.vuex_user.id });
let getChatRecord = (params = {}) => vm.$u.get('app/Chat/GetChatRecord', params); // 获取系统消息列表
//校友找找列表 let getSysList = (params = {}) =>
let AlumnSearchList = (params = {}) => vm.$u.get('app/AlumnRange/AlumnSearchList', params); vm.$u.get("app/Chat/GetSystemMessageList", { id: vm.vuex_user.id });
// 初始化的数据调用微信接口返回参数 //获取管理消息列表
let GetInfoMation = (params = {}) => vm.$u.get('api/Token/GetInfoMation', params); let getAdminList = (params = {}) =>
// 回复绑定 vm.$u.get("app/Chat/GetManageMessageList", { schoolId: vm.vuex_user.id });
let toBind = (params = {}) => vm.$u.get('app/Chat/ReplyBind', params); //获取互动信息列表
//我的资讯 let getinteractionList = (params) =>
let MyAlumnRange = (params = {}) => vm.$u.get('app/My/MyAlumnRange', params); vm.$u.get("app/Chat/GetInterMessageList", {
// 解除绑定 id: vm.vuex_user.id,
let colseBind = (params = {}) => vm.$u.get('app/Chat/UnbindReply', params); type: params,
// 删除评论 });
let DelateComment = (params = {}) => vm.$u.get('app/AlumnRange/DelateComment', params); //校友找找推荐列表
let userVerify = (params = {}) => vm.$u.post('api/Token/IsIdentityCard', params) let getAlumnSearch = (params = {}) =>
vm.$u.get("app/AlumnRange/AlumnSearch", params);
//获取聊天记录
let getChatRecord = (params = {}) =>
vm.$u.get("app/Chat/GetChatRecord", params);
//校友找找列表
let AlumnSearchList = (params = {}) =>
vm.$u.get("app/AlumnRange/AlumnSearchList", params);
// 初始化的数据调用微信接口返回参数
let GetInfoMation = (params = {}) =>
vm.$u.get("api/Token/GetInfoMation", params);
// 回复绑定
let toBind = (params = {}) => vm.$u.get("app/Chat/ReplyBind", params);
//我的资讯
let MyAlumnRange = (params = {}) => vm.$u.get("app/My/MyAlumnRange", params);
// 解除绑定
let colseBind = (params = {}) => vm.$u.get("app/Chat/UnbindReply", params);
// 删除评论
let DelateComment = (params = {}) =>
vm.$u.get("app/AlumnRange/DelateComment", params);
let userVerify = (params = {}) =>
vm.$u.post("api/Token/IsIdentityCard", params);
// 获取人脸验证token // 获取人脸验证token
let getAPIToken = (params = {}) => vm.$u.post('app/My/GetVerifyToken', params) let getAPIToken = (params = {}) =>
// 查询人脸核验结果 vm.$u.post("app/My/GetVerifyToken", params);
let getVerifyInfo = (params = {}) => vm.$u.post('app/My/GetDetailInfo?VerifyToken=' + params) // 查询人脸核验结果
// 根据身份证获取信息 let getVerifyInfo = (params = {}) =>
let getInfoByCard = (params = {}) => vm.$u.get('app/User/GetCardByPreConfiguredUser', params); vm.$u.post("app/My/GetDetailInfo?VerifyToken=" + params);
// 更新身份信息 // 根据身份证获取信息
let updateCard = (params = {}) => vm.$u.post('api/Token/UpdateCard', params) let getInfoByCard = (params = {}) =>
vm.$u.get("app/User/GetCardByPreConfiguredUser", params);
// 更新身份信息
let updateCard = (params = {}) => vm.$u.post("api/Token/UpdateCard", params);
//【手机端】添加心愿 //【手机端】添加心愿
let PushWishDan = (params = {}) => vm.$u.post("app/My/PushWishDan", params) let PushWishDan = (params = {}) => vm.$u.post("app/My/PushWishDan", params);
//【手机端】获取个人心愿列表 //【手机端】获取个人心愿列表
let GetWishListAsync_mobile = (params = {}) => vm.$u.get("app/My/GetWishListAsync_mobile", params) let GetWishListAsync_mobile = (params = {}) =>
//【手机端】删除心愿 删除=失效 vm.$u.get("app/My/GetWishListAsync_mobile", params);
let DeleteWish = (params = {}) => vm.$u.post("app/My/DeleteWish", params) //【手机端】删除心愿 删除=失效
//【管理端】获取当前是否开启匿名 开启true 关闭false let DeleteWish = (params = {}) => vm.$u.post("app/My/DeleteWish", params);
let CheckNM = (params = {}) => vm.$u.get("/app/My/CheckNM", params) //【管理端】获取当前是否开启匿名 开启true 关闭false
let CheckNM = (params = {}) => vm.$u.get("/app/My/CheckNM", params);
/** 首页ai对话 */ /** 首页ai对话 */
// 发送消息 // 发送消息
let SendMessageApi = (params = {}) => vm.$u.post('api/ChatAI/CreateChat', params, {showLoading: false}); let SendMessageApi = (params = {}) =>
// 获取历史对话列表 vm.$u.post("api/ChatAI/CreateChat", params, { showLoading: false });
let GetConversationPage = (params = {}) => vm.$u.get('api/ChatAI/GetConversationPage', params); // 获取历史对话列表
// 获取对话详情 let GetConversationPage = (params = {}) =>
let GetConversationDetail = (params = {}) => vm.$u.get('api/ChatAI/GetHistoricalConversations', params); vm.$u.get("api/ChatAI/GetConversationPage", params);
// 获取对话详情
let GetConversationDetail = (params = {}) =>
vm.$u.get("api/ChatAI/GetHistoricalConversations", params);
/** 登录 */ /** 登录 */
// 获取图形验证码 // 获取图形验证码
let GetCaptcha = (params = {}) => vm.$u.get('api/Login/GetCaptcha', params); let GetCaptcha = (params = {}) => vm.$u.get("api/Login/GetCaptcha", params);
// 发送验证码 // 发送验证码-学生
let GetStuVerifyCode = (params = {}) => vm.$u.post('api/Login/GetSMSCodeAccountRegister', params); let GetStuVerifyCode = (params = {}) =>
// 学生登录 vm.$u.post("api/Login/GetSMSCodeAccountRegister", params);
let StuLogin = (params = {}) => vm.$u.post('api/Login/PhoneLoginExpertUser', params); // 登录-学生
let StuLogin = (params = {}) =>
vm.$u.post("api/Login/PhoneLoginExpertUser", params);
// 将各个定义的接口名称统一放进对象挂载到vm.$u.api(因为vm就是this也即this.$u.api)下 // 发送验证码-教师
vm.$u.api = { let GetTeacherVerifyCode = (params = {}) =>
getTeacherInfo, vm.$u.post("api/Login/RequestLoginSMSCode", params);
getData, // 密码登录-教师
updateTeacherInfo, let TeacherLogin = (params = {}) =>
vm.$u.post("api/Login/LoginManagementEnd", params);
// 验证码登录-教师
let TeacherLoginByCode = (params = {}) =>
vm.$u.post("api/Login/PhoneLoginManagementEnd", params);
// 将各个定义的接口名称统一放进对象挂载到vm.$u.api(因为vm就是this也即this.$u.api)下
LoginApp, vm.$u.api = {
RegisterUser, getTeacherInfo,
saveUserInfo, getData,
upPosition, updateTeacherInfo,
getPosition, LoginApp,
GetAllSchool, RegisterUser,
HomeMap, saveUserInfo,
ChangePassword, upPosition,
myChangePassword, getPosition,
SearchInfo, GetAllSchool,
getSearch, HomeMap,
getUserInfo, ChangePassword,
GetHelpList, myChangePassword,
GetSchoolList, SearchInfo,
getUser, getSearch,
getcharList, getUserInfo,
getFollowList, GetHelpList,
getSysList, GetSchoolList,
getAdminList, getUser,
getinteractionList, getcharList,
getAlumnSearch, getFollowList,
getChatRecord, getSysList,
AlumnSearchList, getAdminList,
GetInfoMation, getinteractionList,
toBind, getAlumnSearch,
colseBind, getChatRecord,
MyAlumnRange, AlumnSearchList,
DelateComment, GetInfoMation,
userVerify, toBind,
GetWishListAsync_mobile, colseBind,
DeleteWish, MyAlumnRange,
CheckNM, DelateComment,
PushWishDan, userVerify,
getAPIToken, GetWishListAsync_mobile,
getVerifyInfo, DeleteWish,
getInfoByCard, CheckNM,
updateCard, PushWishDan,
SendMessageApi, getAPIToken,
GetCaptcha, getVerifyInfo,
GetStuVerifyCode, getInfoByCard,
StuLogin, updateCard,
GetConversationPage, SendMessageApi,
GetConversationDetail GetCaptcha,
}; GetStuVerifyCode,
} StuLogin,
GetConversationPage,
GetConversationDetail,
GetTeacherVerifyCode,
TeacherLogin,
TeacherLoginByCode,
};
};
export default { export default {
install install,
} };

View File

@ -111,7 +111,7 @@
<view class="loading-more" v-if="isLoading"> <view class="loading-more" v-if="isLoading">
<u-loading mode="circle" color="#4370fe"></u-loading> <u-loading mode="circle" color="#4370fe"></u-loading>
</view> </view>
<!-- 到顶部提示 --> <!-- 到顶部提示 -->
<view class="no-more-data" v-if="noMoreData"> <view class="no-more-data" v-if="noMoreData">
<text>已经到顶了</text> <text>已经到顶了</text>
@ -279,7 +279,7 @@ export default {
isLoadingMore: false, // isLoadingMore: false, //
noMoreData: false, // noMoreData: false, //
isSwitchingConversation: false, // isSwitchingConversation: false, //
pageQuery: { pageQuery: {
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
@ -505,7 +505,7 @@ export default {
// //
this.messageGroups.push(userMessage); this.messageGroups.push(userMessage);
this.messageValue = ""; this.messageValue = "";
// AI // AI
const loadingMessage = { const loadingMessage = {
id: "loading_" + Math.random().toString(36).substring(2, 15), id: "loading_" + Math.random().toString(36).substring(2, 15),
@ -519,7 +519,7 @@ export default {
displayTime: "", displayTime: "",
isLoading: true, // isLoading: true, //
}; };
// //
this.messageGroups.push(loadingMessage); this.messageGroups.push(loadingMessage);
@ -559,12 +559,12 @@ export default {
}) })
.catch((error) => { .catch((error) => {
console.error("API请求失败:", error); console.error("API请求失败:", error);
// //
this.messageGroups = this.messageGroups.filter( this.messageGroups = this.messageGroups.filter(
(msg) => !msg.isLoading (msg) => !msg.isLoading
); );
// //
const errorMessage = { const errorMessage = {
id: "error_" + Math.random().toString(36).substring(2, 15), id: "error_" + Math.random().toString(36).substring(2, 15),
@ -577,7 +577,7 @@ export default {
timeLabel: 0, timeLabel: 0,
displayTime: "", displayTime: "",
}; };
this.messageGroups.push(errorMessage); this.messageGroups.push(errorMessage);
}); });
}, },
@ -645,18 +645,18 @@ export default {
// //
this.popupShow = false; this.popupShow = false;
this.isChat = true; this.isChat = true;
// //
this.isSwitchingConversation = true; this.isSwitchingConversation = true;
this.currentConversationId = ""; this.currentConversationId = "";
this.messageGroups = []; this.messageGroups = [];
// //
this.pageQuery.PageIndex = 1; this.pageQuery.PageIndex = 1;
this.isLoadingMore = false; this.isLoadingMore = false;
this.noMoreData = false; this.noMoreData = false;
// //
setTimeout(() => { setTimeout(() => {
this.isSwitchingConversation = false; this.isSwitchingConversation = false;
@ -666,18 +666,18 @@ export default {
// //
handleStartChat() { handleStartChat() {
this.isChat = true; this.isChat = true;
// //
this.isSwitchingConversation = true; this.isSwitchingConversation = true;
this.currentConversationId = ""; this.currentConversationId = "";
this.messageGroups = []; this.messageGroups = [];
// //
this.pageQuery.PageIndex = 1; this.pageQuery.PageIndex = 1;
this.isLoadingMore = false; this.isLoadingMore = false;
this.noMoreData = false; this.noMoreData = false;
// //
setTimeout(() => { setTimeout(() => {
this.isSwitchingConversation = false; this.isSwitchingConversation = false;
@ -692,7 +692,7 @@ export default {
// //
onScrollToUpper() { onScrollToUpper() {
console.log("触发上拉刷新"); console.log("触发上拉刷新");
// //
if (this.noMoreData || this.isSwitchingConversation) { if (this.noMoreData || this.isSwitchingConversation) {
return; return;
@ -982,7 +982,7 @@ export default {
text-align: center; text-align: center;
margin-bottom: 32rpx; margin-bottom: 32rpx;
} }
.no-more-data { .no-more-data {
text-align: center; text-align: center;
font-size: 24rpx; font-size: 24rpx;
@ -1030,7 +1030,7 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;
.dot { .dot {
display: inline-block; display: inline-block;
width: 12rpx; width: 12rpx;
@ -1040,20 +1040,20 @@ export default {
margin: 0 6rpx; margin: 0 6rpx;
opacity: 0.6; opacity: 0.6;
animation: dot-flashing 1.5s infinite linear alternate; animation: dot-flashing 1.5s infinite linear alternate;
&:nth-child(1) { &:nth-child(1) {
animation-delay: 0s; animation-delay: 0s;
} }
&:nth-child(2) { &:nth-child(2) {
animation-delay: 0.5s; animation-delay: 0.5s;
} }
&:nth-child(3) { &:nth-child(3) {
animation-delay: 1s; animation-delay: 1s;
} }
} }
@keyframes dot-flashing { @keyframes dot-flashing {
0% { 0% {
opacity: 0.6; opacity: 0.6;

View File

@ -151,6 +151,7 @@
<script> <script>
import { generateSign } from "@/utils/signUtil.js"; import { generateSign } from "@/utils/signUtil.js";
import { getUserInfoFromJWT } from "@/utils/jwt-util"; import { getUserInfoFromJWT } from "@/utils/jwt-util";
import md5 from "js-md5";
export default { export default {
data() { data() {
@ -166,7 +167,7 @@ export default {
captchaId: "", // ID captchaId: "", // ID
}, },
captchaUrl: "", // URL使 captchaUrl: "", // URL使
loginType: "code", // loginType: "psd", //
codeText: "获取验证码", codeText: "获取验证码",
countdown: 60, countdown: 60,
timer: null, timer: null,
@ -178,6 +179,11 @@ export default {
}, },
}; };
}, },
onLoad(e) {
// console.log("onLoad", e.type); // 0: 1:
this.isTeacher = e.type == 1;
this.loginType = e.type == 1 ? "psd" : "code";
},
mounted() { mounted() {
this.refreshCaptcha(); this.refreshCaptcha();
}, },
@ -188,8 +194,12 @@ export default {
}, },
methods: { methods: {
switchLoginType(type) { switchLoginType(type) {
this.loginType = type;
this.clearErrors(); this.clearErrors();
this.clearLoginParams();
this.loginType = type;
if (this.loginType === "code") {
this.refreshCaptcha();
}
}, },
// //
@ -224,7 +234,11 @@ export default {
console.log("获取验证码...", params); console.log("获取验证码...", params);
this.$u.api.GetStuVerifyCode(params).then((res) => { const apiMethod = this.isTeacher
? "GetTeacherVerifyCode"
: "GetStuVerifyCode";
this.$u.api[apiMethod](params).then((res) => {
console.log("获取验证码...", res); console.log("获取验证码...", res);
if (res.succeed) { if (res.succeed) {
this.$refs.uToast.show({ this.$refs.uToast.show({
@ -330,6 +344,16 @@ export default {
captcha: "", captcha: "",
}; };
}, },
//
clearLoginParams() {
this.loginParams = {
phone: "",
password: "",
code: "",
captcha: "", //
captchaId: "", // ID
};
},
// //
login() { login() {
@ -378,25 +402,21 @@ export default {
}); });
if (this.isTeacher) { if (this.isTeacher) {
this.teacherLogin(); if (this.loginType === "psd") {
this.teacherLogin(); //
} else {
this.teacherLoginByCode(); //
}
} else { } else {
this.stuLogin(); this.stuLogin(); //
} }
}, },
// //
stuLogin() { handleLogin(apiMethod, params, userType = 0) {
// // console.log(":", params);
const params = {
phone: this.loginParams.phone,
// password: this.loginParams.password,
password: "",
code: this.loginParams.code,
};
console.log("登录参数:", params); this.$u.api[apiMethod](params).then((res) => {
this.$u.api.StuLogin(params).then((res) => {
console.log("登录结果:", res); console.log("登录结果:", res);
if (!res.succeed) { if (!res.succeed) {
this.$refs.uToast.show({ this.$refs.uToast.show({
@ -417,20 +437,56 @@ export default {
// //
this.$u.vuex("vuex_token", token); this.$u.vuex("vuex_token", token);
this.$u.vuex("vuex_user", userInfo); this.$u.vuex("vuex_user", userInfo);
this.$u.vuex("vuex_userType", userType); // 0: 1:
// 退
// uni.setStorageSync("userType", userType);
// //
const url = this.isTeacher
? "/pages/notes/index"
: "/pages/home/index/index";
uni.reLaunch({ uni.reLaunch({
url: "/pages/home/index/index", url: url,
}); });
}); });
}, },
// //
stuLogin() {
//
const params = {
phone: this.loginParams.phone,
password: "",
code: this.loginParams.code,
};
// 使
this.handleLogin("StuLogin", params, 0);
},
//
teacherLogin() { teacherLogin() {
return; //
this.$u.api.TeacherLogin(this.loginParams).then((res) => { const params = {
console.log(res); phone: this.loginParams.phone,
}); password: md5(this.loginParams.password),
code: this.loginParams.code,
};
this.handleLogin("TeacherLogin", params, 1);
},
//
teacherLoginByCode() {
//
const params = {
phone: this.loginParams.phone,
password: "",
code: this.loginParams.code,
};
this.handleLogin("TeacherLoginByCode", params, 1);
}, },
// //
@ -554,7 +610,18 @@ export default {
.form-content { .form-content {
.form-item { .form-item {
margin-bottom: 32rpx; margin-bottom: 20rpx;
position: relative;
padding-bottom: 40rpx; /* 为错误提示预留空间 */
.error-tip {
position: absolute;
bottom: 0;
font-size: 24rpx;
color: #ff6481;
height: 40rpx; /* 固定高度 */
line-height: 40rpx;
}
.form-label { .form-label {
display: flex; display: flex;
@ -628,14 +695,6 @@ export default {
} }
} }
} }
.error-tip {
display: block;
font-size: 24rpx;
color: #ff6481;
margin-top: 10rpx;
padding-left: 10rpx;
}
} }
} }

View File

@ -14,7 +14,7 @@ try {
// 需要永久存储且下次APP启动需要取出的在state中的变量名 // 需要永久存储且下次APP启动需要取出的在state中的变量名
// let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_msgList', 'vuex_glyType', 'vuex_userLocation','vuex_userInfo','vuex_user_hobby']; // let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_msgList', 'vuex_glyType', 'vuex_userLocation','vuex_userInfo','vuex_user_hobby'];
let saveStateKeys = ['vuex_user', 'vuex_token']; let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_userType'];
// 保存变量到本地存储中 // 保存变量到本地存储中
const saveLifeData = function (key, value) { const saveLifeData = function (key, value) {
@ -34,6 +34,7 @@ const store = new Vuex.Store({
vuex_teacherInfo: lifeData.vuex_teacherInfo ? lifeData.vuex_teacherInfo : '', vuex_teacherInfo: lifeData.vuex_teacherInfo ? lifeData.vuex_teacherInfo : '',
// 如果上面从本地获取的lifeData对象下有对应的属性就赋值给state中对应的变量 // 如果上面从本地获取的lifeData对象下有对应的属性就赋值给state中对应的变量
// 加上vuex_前缀是防止变量名冲突也让人一目了然 // 加上vuex_前缀是防止变量名冲突也让人一目了然
vuex_userType: lifeData.vuex_userType ? lifeData.vuex_userType : 0, // 0:学生 1:教师
vuex_user: lifeData.vuex_user ? lifeData.vuex_user : '', vuex_user: lifeData.vuex_user ? lifeData.vuex_user : '',
vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '', vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '',
vuex_glyType: lifeData.vuex_glyType ? lifeData.vuex_glyType : '', vuex_glyType: lifeData.vuex_glyType ? lifeData.vuex_glyType : '',