73 lines
1.7 KiB
TypeScript
73 lines
1.7 KiB
TypeScript
import { tansParams } from "./ruoyi";
|
||
|
||
/**
|
||
* 获取uuid
|
||
* @returns 生成的uuid字符串
|
||
*/
|
||
export function generateUUID(): string {
|
||
let uuid = "";
|
||
const chars = "0123456789abcdef";
|
||
|
||
for (let i = 0; i < 32; i++) {
|
||
if (i === 8 || i === 12 || i === 16 || i === 20) {
|
||
uuid += "-";
|
||
}
|
||
uuid += chars[Math.floor(Math.random() * chars.length)];
|
||
}
|
||
|
||
return uuid;
|
||
}
|
||
|
||
/**
|
||
* 获取code
|
||
* @returns 生成的code字符串
|
||
*/
|
||
export async function getWxCode(appid?: string, redirect_uri?: string) {
|
||
// #ifdef H5
|
||
if (appid == undefined || redirect_uri == undefined) return ""
|
||
let code = "";
|
||
|
||
// 截取url中的code方法
|
||
function getUrlCode() {
|
||
let url = location.search;
|
||
console.log(url);
|
||
let theRequest: any = new Object();
|
||
if (url.indexOf("?") != -1) {
|
||
let str = url.substr(1);
|
||
let strs = str.split("&");
|
||
for (let i = 0; i < strs.length; i++) {
|
||
theRequest[strs[i].split("=")[0]] = strs[i].split("=")[1];
|
||
}
|
||
}
|
||
return theRequest as { code: string };
|
||
}
|
||
|
||
code = getUrlCode().code; // 截取code
|
||
if (code == undefined || code == "" || code == null) {
|
||
// 如果没有code,则去请求
|
||
console.log("h5");
|
||
let href = "https://open.weixin.qq.com/connect/oauth2/authorize?" +
|
||
tansParams({
|
||
appid: appid,
|
||
redirect_uri: redirect_uri,
|
||
response_type: "code",
|
||
scope: "snsapi_userinfo",
|
||
state: "STATE",
|
||
}) +
|
||
"#wechat_redirect";
|
||
console.log(href);
|
||
setTimeout(() => {
|
||
window.location.href = href;
|
||
}, 5000);
|
||
} else {
|
||
return code;
|
||
}
|
||
// #endif
|
||
|
||
// #ifdef MP-WEIXIN
|
||
// @ts-ignore
|
||
const res = await wx.login();
|
||
return res.code;
|
||
// #endif
|
||
}
|