| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- import Store from './store/index';
- import Http from './http/index';
- import Error from './untils/error/index';
- import Config from './config/index';
- import Router from './untils/router/index'
- class UserLogin {
- constructor () {
- this.state = {};
- this._hasShowLoginTip = false;
- this.instance = null;
- }
- // 静态方法作为广为人知的接口
- static getInstance () {
- if (!this.instance) {
- this.instance = new UserLogin();
- }
- return this.instance;
- }
- /**
- * 登录
- * @param {object} objs { mobile: '', password: '' }
- * @returns {boolean} 如果登录成功返回true,登录失败返回false
- *
- * @example login({mobile: '13412341234', password: '123456'})
- */
- async login (objs = { account: '', password: '' }) {
- // ------------------------------------------------发送登录请求
- let res = await Http.post({
- url: Http.urlMap.login,
- data: {
- account: objs.account,
- password: objs.password
- }
- });
- // 根据登录结果判断是否登录成功
- // ①:如果成功
- if (res.code === 1) {
- // ------------------------------------------------将用户保存到vuex中
- Store.commit('setUserInfo', { userinfo: res.data.userinfo });
- // ------------------------------------------------保存该用户的token数据
- // 返回true
- return true;
- } else {
- // ②:如果失败
- // 返回false
- return false;
- }
- }
- /**
- * 退出登录
- * @param {object} objs
- * @returns {boolean} 如果退出登录成功返回true,否则返回false
- */
- async logout (objs = {}) {
- Store.commit('setUserInfo', { userinfo: {} });
- return true;
- }
- /**
- * 检查是否登录
- * @param {object} objs
- * @returns {boolean} 如果登录状态正常,如果正常,返回true,否则返回false
- */
- checkIfLogin (objs = {}) {
- // 检查是否登录
- // ①:检查用户数据是否存在
- // ②:检查token是否过期
- if (this.getToken()) {
- return true; // 登录态正常
- }
- // 退出登录
- this.logout();
- // this.showLoginTips();
- return false; // 登录失效
- }
- /**
- * 显示登录提示
- * @param {object} objs
- */
- showLoginTips (objs = {}) {
- if (!this._hasShowLoginTip) {
- this._hasShowLoginTip = true;
- Error.errorNotLoggedIn(
- // success
- () => {
- this._hasShowLoginTip = false;
- },
- // fail
- () => {
- this._hasShowLoginTip = false;
- }
- );
- }
- }
- /**
- * 获取token
- * @returns {boolean} 如果登录状态正常返回token的值,否则返回false
- */
- getToken () {
- let userinfo = this.getUserInfo();
- if (userinfo.token) {
- return userinfo.token;
- }
- return false;
- }
- /**
- * 获取当前用户信息
- * @returns {object} 如果登录状态正常返回用户信息,否则返回空对象{}
- */
- getUserInfo () {
- // console.log(Store.state.userinfo)
- let userinfo = Store.state.userinfo;
- if (userinfo) {
- if (userinfo.token) {
- return userinfo;
- }
- }
- // 退出登录
- this.logout();
- return {};
- }
- //是否是vip
- async getSubvip(id){
- let res = await Http.post({
- url:Http.urlMap.checkvip,
- data:{
- subject_id:id
- },
- needLogin:true,
- })
- if(res.code == 1){
- let is_vip = res.data.is_vip
- Store.commit('setSubjectVipInfo', is_vip)
- return is_vip
- }
- }
- async getUnitVipInfo(type,unit_id){
- // type // 1:章节练习 2历年真题
- let res = await Http.post({
- url:type == 1 ? Http.urlMap.unitVip : Http.urlMap.zhentiVip,
- data:{
- id:unit_id
- },
- needLogin:true
- })
- if(res.code == 1){
- return res.data
- }
- }
- async getExamVipInfo(exam_id){
- console.log(exam_id)
- let res = await Http.post({
- url:Http.urlMap.examVip,
- data:{
- id:exam_id
- },
- needLogin:true
- })
- if(res.code == 1){
- return res.data
- }
- }
-
-
-
- }
- let _userLogin = new UserLogin();
- export default _userLogin;
|