提交 9dcf8df6 作者: 翁进城

微信登录功能开发

上级 b906ce6c
...@@ -8,9 +8,34 @@ export interface RegionResp { ...@@ -8,9 +8,34 @@ export interface RegionResp {
pid: number; pid: number;
} }
export interface UserInfoParams {
userAccountId: number;
}
export interface UserInfoResp {
id: number;
accountType: number;
uid: string;
phoneNum: string;
userName: string;
nickName: string;
userImg: string;
userSex: number;
email: string;
source: number;
accountStatus: number;
remark: string;
portType: number;
createTime: string;
}
export default { export default {
//获取区域数据 //获取区域数据
region: (): Promise<Response<Array<RegionResp>>> => { region: (): Promise<Response<Array<RegionResp>>> => {
return request("/pms/webDevice/getSecondDistrictInfo"); return request("/pms/webDevice/getSecondDistrictInfo");
}, },
//获取用户基本信息
userInfo: (params: UserInfoParams): Promise<Response<UserInfoResp>> => {
return request("/userapp/user-account/info", "get", params, {});
},
}; };
...@@ -78,8 +78,4 @@ ...@@ -78,8 +78,4 @@
background: none; background: none;
} }
.headImg {
width: 48px;
height: 48px;
background: #ffffff;
}
import React, { useState } from "react"; import React, { useEffect, useState } from "react";
import { Modal } from "antd"; import { AutoComplete, Modal } from "antd";
import Image from "next/image"; import Image from "next/image";
type Props = { type Props = {
open: boolean; open: boolean;
onCancel: () => void; onCancel: () => void;
}; };
export default function loginModal(props: Props) { export default function loginModal(props: Props) {
useEffect(() => {
if (props.open) {
var obj = new window.WxLogin({
self_redirect: true,
id: "login_container",
appid: "wx18b7883acd204278",
scope: "snsapi_login",
redirect_uri: encodeURIComponent("https://iuav.mmcuav.cn/"),
state: "",
style: "",
href: "",
});
}
}, [props.open]);
return ( return (
<> <>
<Modal <Modal
...@@ -30,16 +44,13 @@ export default function loginModal(props: Props) { ...@@ -30,16 +44,13 @@ export default function loginModal(props: Props) {
> >
欢迎来到云享飞 欢迎来到云享飞
</div> </div>
<Image <div
alt="" id="login_container"
src="" style={{ margin: "auto", display: "table" }}
width={160} ></div>
height={160}
style={{ margin: "auto", display: "block" }}
></Image>
<div <div
style={{ style={{
marginTop: 39, marginTop: -120,
marginBottom: 52, marginBottom: 52,
fontSize: 14, fontSize: 14,
fontFamily: "MicrosoftYaHei", fontFamily: "MicrosoftYaHei",
......
/* import { useEffect } from "react"; import { useEffect, useState } from "react";
import Router from "next/router"; import api, { UserInfoResp } from "~/api";
import request from '~/api/request';
import useSWR, { SWRResponse } from "swr"; */
/* /*
const fetcher = (url) => const fetcher = (url) =>
fetch(url) fetch(url)
...@@ -10,24 +8,18 @@ const fetcher = (url) => ...@@ -10,24 +8,18 @@ const fetcher = (url) =>
return { user: data?.user || null }; return { user: data?.user || null };
}); */ }); */
export function useUser({ redirectTo, redirectIfFound } = {}) { export function useUser() {
return {}; const [user, setUser] = useState(null);
/* const { data, error } = useSWR("/api/user", request);
const user = data?.user;
const finished = Boolean(data);
const hasUser = Boolean(user);
useEffect(() => { useEffect(() => {
if (!redirectTo || !finished) return; api
if ( .userInfo({
// If redirectTo is set, redirect if the user was not found. userAccountId: 0,
(redirectTo && !redirectIfFound && !hasUser) || })
// If redirectIfFound is also set, redirect if the user was found .then((res) => {
(redirectIfFound && hasUser) setUser(res.result);
) { });
Router.push(redirectTo); }, []);
}
}, [redirectTo, redirectIfFound, finished, hasUser]);
return error ? null : user; */ return user;
} }
...@@ -4,6 +4,8 @@ import type { AppProps } from 'next/app'; ...@@ -4,6 +4,8 @@ import type { AppProps } from 'next/app';
import withTheme from '../theme'; import withTheme from '../theme';
import { message } from 'antd'; import { message } from 'antd';
import { useEffect } from 'react'; import { useEffect } from 'react';
import Head from "next/head";
import Script from 'next/script';
export default function App({ Component, pageProps }: AppProps) { export default function App({ Component, pageProps }: AppProps) {
const [messageApi, contextHolder] = message.useMessage(); const [messageApi, contextHolder] = message.useMessage();
...@@ -14,6 +16,13 @@ export default function App({ Component, pageProps }: AppProps) { ...@@ -14,6 +16,13 @@ export default function App({ Component, pageProps }: AppProps) {
return withTheme( return withTheme(
<> <>
<Head>
<meta
name="viewport"
content="width=device-width,initial-scale=1"
></meta>
</Head>
<Script src="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></Script>
{contextHolder} {contextHolder}
<Component {...pageProps} /> <Component {...pageProps} />
</> </>
......
...@@ -3,5 +3,6 @@ import { MessageInstance } from 'antd/es/message/interface'; ...@@ -3,5 +3,6 @@ import { MessageInstance } from 'antd/es/message/interface';
declare global { declare global {
interface Window { interface Window {
messageApi: MessageInstance; messageApi: MessageInstance;
WxLogin: any;
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论