feat: 更新登录逻辑,支持教师和学生的不同登录方式
This commit is contained in:
parent
53f129a355
commit
48c94b0905
3
App.vue
3
App.vue
|
@ -36,11 +36,12 @@ export default {
|
|||
});
|
||||
|
||||
if (!that.vuex_token) {
|
||||
const type = that.vuex_userType || 0; // 0:学生 1:教师
|
||||
this.$u.vuex("vuex_user", "");
|
||||
this.$u.vuex("vuex_token", "");
|
||||
uni.clearStorage();
|
||||
uni.reLaunch({
|
||||
url: "/pages/login/login/index",
|
||||
url: `/pages/login/login/index?type=${type}`,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,172 +1,220 @@
|
|||
// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作
|
||||
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 RegisterUser = (params = {}) => vm.$u.post('api/Token/RegisterUser', params);
|
||||
// 基础资料以及保存用户头像
|
||||
let saveUserInfo = (params = {}) => vm.$u.post('app/User/UploadingFormFileHead', params);
|
||||
// 更新用户定位信息
|
||||
let upPosition = (params = {}) => vm.$u.post('app/Position/InsertPosition', params);
|
||||
// 获取用户当前定位信息
|
||||
let getPosition = (params = {}) => vm.$u.get('app/Position/GetPositionByUser', {
|
||||
userId: vm.vuex_user.id
|
||||
// 登录
|
||||
let LoginApp = (params = {}) => vm.$u.post("api/Token/LoginApp", params);
|
||||
// 注册
|
||||
let RegisterUser = (params = {}) =>
|
||||
vm.$u.post("api/Token/RegisterUser", params);
|
||||
// 基础资料以及保存用户头像
|
||||
let saveUserInfo = (params = {}) =>
|
||||
vm.$u.post("app/User/UploadingFormFileHead", params);
|
||||
// 更新用户定位信息
|
||||
let upPosition = (params = {}) =>
|
||||
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 HomeMap = (params = {}) => vm.$u.get('/app/User/HomeMap', params);
|
||||
//修改密码
|
||||
let ChangePassword = (params = {}) => vm.$u.post('app/User/ChangePassword', params);
|
||||
//修改密码
|
||||
let myChangePassword = (params = {}) => vm.$u.post('app/My/ChangePassword', params);
|
||||
// 获取搜索页面相关信息
|
||||
let SearchInfo = (params = {}) => vm.$u.get('app/User/SearchRelevant', params);
|
||||
//获取搜索结果页面
|
||||
let getSearch = (params = {}) => vm.$u.get('app/User/GetSearchList', params);
|
||||
// 获取用户信息
|
||||
let getUserInfo = (params = {}) => vm.$u.get('app/User/HomePage', params);
|
||||
// 获取校友帮帮列表
|
||||
let GetHelpList = (params = {}) => vm.$u.get('app/HelpArticle/GetHelpArticleListByKey', params);
|
||||
// 获取学校资讯
|
||||
let GetSchoolList = (params = {}) => vm.$u.get('app/AlumnRange/AlumnRangeSchool', params);
|
||||
//获取最新的用户信息(更新用户数据)
|
||||
let getUser = (params = {}) => vm.$u.get('app/User/GetUser', {userId: vm.vuex_user.id}).then(res => {
|
||||
vm.$u.get('/app/User/GetUserSchool').then(ress => {
|
||||
// res.isAttestationGLY = ress.isAttestationGLY
|
||||
// res.isAttestationJZG = ress.isAttestationJZG
|
||||
// res.isAttestationQY = ress.isAttestationQY
|
||||
// res.isAttestationXY = res.isAttestationXY
|
||||
// res.isAttestationZXS = ress.isAttestationZXS
|
||||
res.schoolId = ress.items.schoolId
|
||||
vm.$u.vuex('vuex_user', {...res.user,...res.userExtension})
|
||||
vm.$u.vuex('vuex_user_hobby', res.lableList)
|
||||
})
|
||||
})
|
||||
//获取用户消息列表
|
||||
let getcharList = (params = {}) => vm.$u.get('app/Chat/GetUserMessageList', params);
|
||||
//获取用户获取关注列表
|
||||
let getFollowList = (params = {}) => vm.$u.get('app/Chat/GetFollowList', {id: vm.vuex_user.id});
|
||||
// 获取系统消息列表
|
||||
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 getinteractionList = (params) => vm.$u.get('app/Chat/GetInterMessageList', {id: vm.vuex_user.id, type: 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)
|
||||
// 获取所有学校
|
||||
let GetAllSchool = (params = {}) =>
|
||||
vm.$u.get("app/User/GetSchoolList", params);
|
||||
//获取首页地图信息
|
||||
let HomeMap = (params = {}) => vm.$u.get("/app/User/HomeMap", params);
|
||||
//修改密码
|
||||
let ChangePassword = (params = {}) =>
|
||||
vm.$u.post("app/User/ChangePassword", params);
|
||||
//修改密码
|
||||
let myChangePassword = (params = {}) =>
|
||||
vm.$u.post("app/My/ChangePassword", params);
|
||||
// 获取搜索页面相关信息
|
||||
let SearchInfo = (params = {}) =>
|
||||
vm.$u.get("app/User/SearchRelevant", params);
|
||||
//获取搜索结果页面
|
||||
let getSearch = (params = {}) => vm.$u.get("app/User/GetSearchList", params);
|
||||
// 获取用户信息
|
||||
let getUserInfo = (params = {}) => vm.$u.get("app/User/HomePage", params);
|
||||
// 获取校友帮帮列表
|
||||
let GetHelpList = (params = {}) =>
|
||||
vm.$u.get("app/HelpArticle/GetHelpArticleListByKey", params);
|
||||
// 获取学校资讯
|
||||
let GetSchoolList = (params = {}) =>
|
||||
vm.$u.get("app/AlumnRange/AlumnRangeSchool", params);
|
||||
//获取最新的用户信息(更新用户数据)
|
||||
let getUser = (params = {}) =>
|
||||
vm.$u.get("app/User/GetUser", { userId: vm.vuex_user.id }).then((res) => {
|
||||
vm.$u.get("/app/User/GetUserSchool").then((ress) => {
|
||||
// res.isAttestationGLY = ress.isAttestationGLY
|
||||
// res.isAttestationJZG = ress.isAttestationJZG
|
||||
// res.isAttestationQY = ress.isAttestationQY
|
||||
// res.isAttestationXY = res.isAttestationXY
|
||||
// res.isAttestationZXS = ress.isAttestationZXS
|
||||
res.schoolId = ress.items.schoolId;
|
||||
vm.$u.vuex("vuex_user", { ...res.user, ...res.userExtension });
|
||||
vm.$u.vuex("vuex_user_hobby", res.lableList);
|
||||
});
|
||||
});
|
||||
//获取用户消息列表
|
||||
let getcharList = (params = {}) =>
|
||||
vm.$u.get("app/Chat/GetUserMessageList", params);
|
||||
//获取用户获取关注列表
|
||||
let getFollowList = (params = {}) =>
|
||||
vm.$u.get("app/Chat/GetFollowList", { id: vm.vuex_user.id });
|
||||
// 获取系统消息列表
|
||||
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 getinteractionList = (params) =>
|
||||
vm.$u.get("app/Chat/GetInterMessageList", {
|
||||
id: vm.vuex_user.id,
|
||||
type: 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
|
||||
let getAPIToken = (params = {}) => vm.$u.post('app/My/GetVerifyToken', params)
|
||||
// 查询人脸核验结果
|
||||
let getVerifyInfo = (params = {}) => vm.$u.post('app/My/GetDetailInfo?VerifyToken=' + params)
|
||||
// 根据身份证获取信息
|
||||
let getInfoByCard = (params = {}) => vm.$u.get('app/User/GetCardByPreConfiguredUser', params);
|
||||
// 更新身份信息
|
||||
let updateCard = (params = {}) => vm.$u.post('api/Token/UpdateCard', params)
|
||||
// 获取人脸验证token
|
||||
let getAPIToken = (params = {}) =>
|
||||
vm.$u.post("app/My/GetVerifyToken", params);
|
||||
// 查询人脸核验结果
|
||||
let getVerifyInfo = (params = {}) =>
|
||||
vm.$u.post("app/My/GetDetailInfo?VerifyToken=" + 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 DeleteWish = (params = {}) => vm.$u.post("app/My/DeleteWish", params)
|
||||
//【管理端】获取当前是否开启匿名 开启true 关闭false
|
||||
let CheckNM = (params = {}) => vm.$u.get("/app/My/CheckNM", 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 CheckNM = (params = {}) => vm.$u.get("/app/My/CheckNM", params);
|
||||
|
||||
/** 首页ai对话 */
|
||||
// 发送消息
|
||||
let SendMessageApi = (params = {}) => vm.$u.post('api/ChatAI/CreateChat', params, {showLoading: false});
|
||||
// 获取历史对话列表
|
||||
let GetConversationPage = (params = {}) => vm.$u.get('api/ChatAI/GetConversationPage', params);
|
||||
// 获取对话详情
|
||||
let GetConversationDetail = (params = {}) => vm.$u.get('api/ChatAI/GetHistoricalConversations', params);
|
||||
/** 首页ai对话 */
|
||||
// 发送消息
|
||||
let SendMessageApi = (params = {}) =>
|
||||
vm.$u.post("api/ChatAI/CreateChat", params, { showLoading: false });
|
||||
// 获取历史对话列表
|
||||
let GetConversationPage = (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 GetStuVerifyCode = (params = {}) => vm.$u.post('api/Login/GetSMSCodeAccountRegister', params);
|
||||
// 学生登录
|
||||
let StuLogin = (params = {}) => vm.$u.post('api/Login/PhoneLoginExpertUser', params);
|
||||
/** 登录 */
|
||||
// 获取图形验证码
|
||||
let GetCaptcha = (params = {}) => vm.$u.get("api/Login/GetCaptcha", params);
|
||||
// 发送验证码-学生
|
||||
let GetStuVerifyCode = (params = {}) =>
|
||||
vm.$u.post("api/Login/GetSMSCodeAccountRegister", params);
|
||||
// 登录-学生
|
||||
let StuLogin = (params = {}) =>
|
||||
vm.$u.post("api/Login/PhoneLoginExpertUser", params);
|
||||
|
||||
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
|
||||
vm.$u.api = {
|
||||
getTeacherInfo,
|
||||
getData,
|
||||
updateTeacherInfo,
|
||||
// 发送验证码-教师
|
||||
let GetTeacherVerifyCode = (params = {}) =>
|
||||
vm.$u.post("api/Login/RequestLoginSMSCode", params);
|
||||
// 密码登录-教师
|
||||
let TeacherLogin = (params = {}) =>
|
||||
vm.$u.post("api/Login/LoginManagementEnd", params);
|
||||
// 验证码登录-教师
|
||||
let TeacherLoginByCode = (params = {}) =>
|
||||
vm.$u.post("api/Login/PhoneLoginManagementEnd", params);
|
||||
|
||||
|
||||
LoginApp,
|
||||
RegisterUser,
|
||||
saveUserInfo,
|
||||
upPosition,
|
||||
getPosition,
|
||||
GetAllSchool,
|
||||
HomeMap,
|
||||
ChangePassword,
|
||||
myChangePassword,
|
||||
SearchInfo,
|
||||
getSearch,
|
||||
getUserInfo,
|
||||
GetHelpList,
|
||||
GetSchoolList,
|
||||
getUser,
|
||||
getcharList,
|
||||
getFollowList,
|
||||
getSysList,
|
||||
getAdminList,
|
||||
getinteractionList,
|
||||
getAlumnSearch,
|
||||
getChatRecord,
|
||||
AlumnSearchList,
|
||||
GetInfoMation,
|
||||
toBind,
|
||||
colseBind,
|
||||
MyAlumnRange,
|
||||
DelateComment,
|
||||
userVerify,
|
||||
GetWishListAsync_mobile,
|
||||
DeleteWish,
|
||||
CheckNM,
|
||||
PushWishDan,
|
||||
getAPIToken,
|
||||
getVerifyInfo,
|
||||
getInfoByCard,
|
||||
updateCard,
|
||||
SendMessageApi,
|
||||
GetCaptcha,
|
||||
GetStuVerifyCode,
|
||||
StuLogin,
|
||||
GetConversationPage,
|
||||
GetConversationDetail
|
||||
};
|
||||
}
|
||||
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
|
||||
vm.$u.api = {
|
||||
getTeacherInfo,
|
||||
getData,
|
||||
updateTeacherInfo,
|
||||
LoginApp,
|
||||
RegisterUser,
|
||||
saveUserInfo,
|
||||
upPosition,
|
||||
getPosition,
|
||||
GetAllSchool,
|
||||
HomeMap,
|
||||
ChangePassword,
|
||||
myChangePassword,
|
||||
SearchInfo,
|
||||
getSearch,
|
||||
getUserInfo,
|
||||
GetHelpList,
|
||||
GetSchoolList,
|
||||
getUser,
|
||||
getcharList,
|
||||
getFollowList,
|
||||
getSysList,
|
||||
getAdminList,
|
||||
getinteractionList,
|
||||
getAlumnSearch,
|
||||
getChatRecord,
|
||||
AlumnSearchList,
|
||||
GetInfoMation,
|
||||
toBind,
|
||||
colseBind,
|
||||
MyAlumnRange,
|
||||
DelateComment,
|
||||
userVerify,
|
||||
GetWishListAsync_mobile,
|
||||
DeleteWish,
|
||||
CheckNM,
|
||||
PushWishDan,
|
||||
getAPIToken,
|
||||
getVerifyInfo,
|
||||
getInfoByCard,
|
||||
updateCard,
|
||||
SendMessageApi,
|
||||
GetCaptcha,
|
||||
GetStuVerifyCode,
|
||||
StuLogin,
|
||||
GetConversationPage,
|
||||
GetConversationDetail,
|
||||
GetTeacherVerifyCode,
|
||||
TeacherLogin,
|
||||
TeacherLoginByCode,
|
||||
};
|
||||
};
|
||||
|
||||
export default {
|
||||
install
|
||||
}
|
||||
install,
|
||||
};
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
<view class="loading-more" v-if="isLoading">
|
||||
<u-loading mode="circle" color="#4370fe"></u-loading>
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 到顶部提示 -->
|
||||
<view class="no-more-data" v-if="noMoreData">
|
||||
<text>已经到顶了</text>
|
||||
|
@ -279,7 +279,7 @@ export default {
|
|||
isLoadingMore: false, // 是否正在加载更多的标志位
|
||||
noMoreData: false, // 是否已加载全部历史消息
|
||||
isSwitchingConversation: false, // 是否正在切换对话的标志位
|
||||
|
||||
|
||||
pageQuery: {
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
|
@ -505,7 +505,7 @@ export default {
|
|||
// 添加到消息列表
|
||||
this.messageGroups.push(userMessage);
|
||||
this.messageValue = "";
|
||||
|
||||
|
||||
// 立即添加一个AI回复的加载状态消息
|
||||
const loadingMessage = {
|
||||
id: "loading_" + Math.random().toString(36).substring(2, 15),
|
||||
|
@ -519,7 +519,7 @@ export default {
|
|||
displayTime: "",
|
||||
isLoading: true, // 标记为加载状态
|
||||
};
|
||||
|
||||
|
||||
// 添加加载状态消息到列表
|
||||
this.messageGroups.push(loadingMessage);
|
||||
|
||||
|
@ -559,12 +559,12 @@ export default {
|
|||
})
|
||||
.catch((error) => {
|
||||
console.error("API请求失败:", error);
|
||||
|
||||
|
||||
// 从消息列表中移除加载状态消息
|
||||
this.messageGroups = this.messageGroups.filter(
|
||||
(msg) => !msg.isLoading
|
||||
);
|
||||
|
||||
|
||||
// 添加错误消息
|
||||
const errorMessage = {
|
||||
id: "error_" + Math.random().toString(36).substring(2, 15),
|
||||
|
@ -577,7 +577,7 @@ export default {
|
|||
timeLabel: 0,
|
||||
displayTime: "",
|
||||
};
|
||||
|
||||
|
||||
this.messageGroups.push(errorMessage);
|
||||
});
|
||||
},
|
||||
|
@ -645,18 +645,18 @@ export default {
|
|||
// 关闭弹窗
|
||||
this.popupShow = false;
|
||||
this.isChat = true;
|
||||
|
||||
|
||||
// 设置切换对话标志位,防止触发上拉刷新
|
||||
this.isSwitchingConversation = true;
|
||||
|
||||
|
||||
this.currentConversationId = "";
|
||||
this.messageGroups = [];
|
||||
|
||||
|
||||
// 重置分页和加载状态
|
||||
this.pageQuery.PageIndex = 1;
|
||||
this.isLoadingMore = false;
|
||||
this.noMoreData = false;
|
||||
|
||||
|
||||
// 延迟重置切换对话标志位
|
||||
setTimeout(() => {
|
||||
this.isSwitchingConversation = false;
|
||||
|
@ -666,18 +666,18 @@ export default {
|
|||
// 开始新对话
|
||||
handleStartChat() {
|
||||
this.isChat = true;
|
||||
|
||||
|
||||
// 设置切换对话标志位,防止触发上拉刷新
|
||||
this.isSwitchingConversation = true;
|
||||
|
||||
|
||||
this.currentConversationId = "";
|
||||
this.messageGroups = [];
|
||||
|
||||
|
||||
// 重置分页和加载状态
|
||||
this.pageQuery.PageIndex = 1;
|
||||
this.isLoadingMore = false;
|
||||
this.noMoreData = false;
|
||||
|
||||
|
||||
// 延迟重置切换对话标志位
|
||||
setTimeout(() => {
|
||||
this.isSwitchingConversation = false;
|
||||
|
@ -692,7 +692,7 @@ export default {
|
|||
// 滚动到顶部事件处理
|
||||
onScrollToUpper() {
|
||||
console.log("触发上拉刷新");
|
||||
|
||||
|
||||
// 如果已经没有更多数据或正在切换对话,不再触发上拉刷新
|
||||
if (this.noMoreData || this.isSwitchingConversation) {
|
||||
return;
|
||||
|
@ -982,7 +982,7 @@ export default {
|
|||
text-align: center;
|
||||
margin-bottom: 32rpx;
|
||||
}
|
||||
|
||||
|
||||
.no-more-data {
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
|
@ -1030,7 +1030,7 @@ export default {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
|
||||
|
||||
.dot {
|
||||
display: inline-block;
|
||||
width: 12rpx;
|
||||
|
@ -1040,20 +1040,20 @@ export default {
|
|||
margin: 0 6rpx;
|
||||
opacity: 0.6;
|
||||
animation: dot-flashing 1.5s infinite linear alternate;
|
||||
|
||||
|
||||
&:nth-child(1) {
|
||||
animation-delay: 0s;
|
||||
}
|
||||
|
||||
|
||||
&:nth-child(2) {
|
||||
animation-delay: 0.5s;
|
||||
}
|
||||
|
||||
|
||||
&:nth-child(3) {
|
||||
animation-delay: 1s;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@keyframes dot-flashing {
|
||||
0% {
|
||||
opacity: 0.6;
|
||||
|
|
|
@ -151,6 +151,7 @@
|
|||
<script>
|
||||
import { generateSign } from "@/utils/signUtil.js";
|
||||
import { getUserInfoFromJWT } from "@/utils/jwt-util";
|
||||
import md5 from "js-md5";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
|
@ -166,7 +167,7 @@ export default {
|
|||
captchaId: "", // 图形验证码ID
|
||||
},
|
||||
captchaUrl: "", // 图形验证码URL,实际使用时需替换
|
||||
loginType: "code", // 默认验证码登录,与图片一致
|
||||
loginType: "psd", // 教师默认密码登录
|
||||
codeText: "获取验证码",
|
||||
countdown: 60,
|
||||
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() {
|
||||
this.refreshCaptcha();
|
||||
},
|
||||
|
@ -188,8 +194,12 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
switchLoginType(type) {
|
||||
this.loginType = type;
|
||||
this.clearErrors();
|
||||
this.clearLoginParams();
|
||||
this.loginType = type;
|
||||
if (this.loginType === "code") {
|
||||
this.refreshCaptcha();
|
||||
}
|
||||
},
|
||||
|
||||
// 刷新图形验证码
|
||||
|
@ -224,7 +234,11 @@ export default {
|
|||
|
||||
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);
|
||||
if (res.succeed) {
|
||||
this.$refs.uToast.show({
|
||||
|
@ -330,6 +344,16 @@ export default {
|
|||
captcha: "",
|
||||
};
|
||||
},
|
||||
// 清除登录参数
|
||||
clearLoginParams() {
|
||||
this.loginParams = {
|
||||
phone: "",
|
||||
password: "",
|
||||
code: "",
|
||||
captcha: "", // 图形验证码
|
||||
captchaId: "", // 图形验证码ID
|
||||
};
|
||||
},
|
||||
|
||||
// 登录
|
||||
login() {
|
||||
|
@ -378,25 +402,21 @@ export default {
|
|||
});
|
||||
|
||||
if (this.isTeacher) {
|
||||
this.teacherLogin();
|
||||
if (this.loginType === "psd") {
|
||||
this.teacherLogin(); // 密码登录
|
||||
} else {
|
||||
this.teacherLoginByCode(); // 验证码登录
|
||||
}
|
||||
} else {
|
||||
this.stuLogin();
|
||||
this.stuLogin(); // 学生登录
|
||||
}
|
||||
},
|
||||
|
||||
// 学生登录
|
||||
stuLogin() {
|
||||
// 构建登录参数
|
||||
const params = {
|
||||
phone: this.loginParams.phone,
|
||||
// password: this.loginParams.password,
|
||||
password: "",
|
||||
code: this.loginParams.code,
|
||||
};
|
||||
// 通用登录处理函数
|
||||
handleLogin(apiMethod, params, userType = 0) {
|
||||
// console.log("登录参数:", params);
|
||||
|
||||
console.log("登录参数:", params);
|
||||
|
||||
this.$u.api.StuLogin(params).then((res) => {
|
||||
this.$u.api[apiMethod](params).then((res) => {
|
||||
console.log("登录结果:", res);
|
||||
if (!res.succeed) {
|
||||
this.$refs.uToast.show({
|
||||
|
@ -417,20 +437,56 @@ export default {
|
|||
// 保存登录后得到的用户数据
|
||||
this.$u.vuex("vuex_token", token);
|
||||
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({
|
||||
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() {
|
||||
return;
|
||||
this.$u.api.TeacherLogin(this.loginParams).then((res) => {
|
||||
console.log(res);
|
||||
});
|
||||
// 构建登录参数
|
||||
const params = {
|
||||
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-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 {
|
||||
display: flex;
|
||||
|
@ -628,14 +695,6 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.error-tip {
|
||||
display: block;
|
||||
font-size: 24rpx;
|
||||
color: #ff6481;
|
||||
margin-top: 10rpx;
|
||||
padding-left: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ try {
|
|||
|
||||
// 需要永久存储,且下次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'];
|
||||
let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_userType'];
|
||||
|
||||
// 保存变量到本地存储中
|
||||
const saveLifeData = function (key, value) {
|
||||
|
@ -34,6 +34,7 @@ const store = new Vuex.Store({
|
|||
vuex_teacherInfo: lifeData.vuex_teacherInfo ? lifeData.vuex_teacherInfo : '',
|
||||
// 如果上面从本地获取的lifeData对象下有对应的属性,就赋值给state中对应的变量
|
||||
// 加上vuex_前缀,是防止变量名冲突,也让人一目了然
|
||||
vuex_userType: lifeData.vuex_userType ? lifeData.vuex_userType : 0, // 0:学生 1:教师
|
||||
vuex_user: lifeData.vuex_user ? lifeData.vuex_user : '',
|
||||
vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '',
|
||||
vuex_glyType: lifeData.vuex_glyType ? lifeData.vuex_glyType : '',
|
||||
|
|
Loading…
Reference in New Issue