123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- import {
- setItem,
- removeItem,
- StorageKeys,
- getItem
- } from "@/utils/storage";
- import {
- defineStore
- } from "pinia";
- import {
- request,requestNew
- } from "@/utils/network/request";
- import {
- appId,
- getToken,
- wechatAppID,
- getOpenId
- } from "@/utils/network/api";
- import {
- stringToJson
- } from "@/utils/network/encryption";
- import {
- confirm,
- msg,
- navTo
- } from "@/utils/utils";
-
- export const useUserStore = defineStore("userStore", {
- state: () => ({
- //访问令牌
- access_token: "",
- //openId
- openId: "",
- }),
-
- getters: {},
-
- actions: {
- //设置用户token
- saveToken(token) {
- this.access_token = token;
- setItem(StorageKeys.Token, token);
- },
-
- //设置openId
- saveOpenId(openId) {
- this.openId = openId;
- setItem(StorageKeys.OpenId, openId);
- },
-
- /*根据登录code获取token信息*/
- fetchToken(code) {
- if(getItem("QYorder") && getItem("QYorder").openid){
- const options = {
- type: 2,
- data: {
- deviceId: "",
- code: code,
- loginSource: getItem("loginSource"),
- wxOpenid: getItem("QYorder").openid,
- zfbOpenId: getItem("zfbOpenId"),
- zfbUserId: getItem("zfbUserId"),
- },
- method: "POST",
- showLoading: false,
- };
-
- return new Promise(async (resolve, reject) => {
- const res = await requestNew(getToken, options);
- const data = res;
- console.log("fetchToken", options)
- this.saveToken(data.accessToken);
- this.saveOpenId(data.openId);
- console.log('输出内容', data.openId)
- resolve(data);
- }).catch((error) => {
- reject(error);
- });
- }else{
- var that=this
- // 如果没有wxOpenid重新获取
- //获取微信小程序openid
- // #ifdef MP-WEIXIN
- uni.login({
- provider: "weixin",
- success: function(e) {
- console.log("jsCode",e.code)
- const options = {
- type: 2,
- data: {
- "jsCode": e.code
- },
- method: "POST",
- };
- // #ifdef MP-WEIXIN
- requestNew(getOpenId, options).then((res) => {
- const result =res;
- console.log("getOpenId===",result)
- const openidData = stringToJson(result.data);
- setItem("QYorder", openidData);
- const options = {
- type: 2,
- data: {
- deviceId: "",
- code: code,
- loginSource: getItem("loginSource"),
- wxOpenid: getItem("QYorder").openid,
- zfbOpenId: getItem("zfbOpenId"),
- zfbUserId: getItem("zfbUserId"),
- },
- method: "POST",
- showLoading: false,
- };
-
- return new Promise(async (resolve, reject) => {
- const res = await requestNew(getToken, options);
- const data = res;
- console.log("fetchToken", options)
- that.saveToken(data.accessToken);
- that.saveOpenId(data.openId);
- console.log('输出内容', data.openId)
- resolve(data);
- }).catch((error) => {
- reject(error);
- });
- });
- // #endif
-
- },
- });
- // #endif
- }
-
- },
-
- /*退出登录*/
- loginOutNoConfirm() {
- msg("退出登录成功!");
- // //把state中的值恢复成默认值
- this.$reset();
- // //移除本地缓存
- removeItem(StorageKeys.Token);
- removeItem(StorageKeys.OpenId);
- uni.$emit('loginOut');
- uni.navigateTo({
- url: "/login/login"
- });
- },
-
- /*退出登录*/
- loginOut() {
- confirm(
- "确定要退出登录吗?",
- () => {
- this.loginOutNoConfirm();
- },
- "提示",
- true
- );
- },
- },
- });
|