import React, {Component} from 'react'; import './App.css'; import {Button, Dialog, Divider, Form, Input, List, Modal, NavBar, Popup, TextArea, Toast,} from "antd-mobile"; import {UnorderedListOutline} from "antd-mobile-icons"; import {ListItem} from "antd-mobile/es/components/list/list-item"; import {checkQrCode, getLog, getScore, getToken, getUsers, getLink, stopStudy, study, login, checkToken} from "./utils/api"; import QrCode from 'qrcode.react'; class App extends React.Component { constructor(props: any) { super(props); this.state = { popup_visible: false, index: "login", is_login: false }; } set_login = ()=>{ this.setState({ is_login: true }) } componentDidMount() { checkToken().then((t) =>{ console.log(t) if (t){ this.set_login() } }) } render() { let home = ( <> }> {"study_xxqg"} { this.setState({popup_visible: false}) })}>

XXQG

{this.setState({"index":"login"})}}>添加用户 {this.setState({"index":"user_list"})}}>用户管理 {this.setState({"index":"config"})}}>配置管理 {this.setState({"index":"log"})}}>日志查看 {this.setState({"index":"help"})}}>帮助 { window.localStorage.removeItem("xxqg_token") this.setState({ is_login: false }) }}>退出登录
) if (this.state.is_login) { return home } else { return } } back = () => { this.setState({ popup_visible: true, }) } } class Login extends Component{ constructor(props: any) { super(props); this.state = { img : "你还未获取登录链接" }; } onFinish = (value:string)=>{ login(JSON.stringify(value)).then(resp => { console.log(resp) if (resp.success){ window.localStorage.setItem("xxqg_token",resp.data) this.props.parent.set_login() }else { Dialog.show(resp.message) } }) } render() { return <>
登录 } >

XXQG 登录页

; } } class Router extends Component{ constructor(props: any) { super(props); this.state = { img : "你还未获取登录链接" }; } isWechat = ()=> { if (/MicroMessenger/i.test(window.navigator.userAgent)){ return "inline" }else { return "none" } } render() { let login = <>

当前环境为微信环境,请点击右上角在浏览器中打开

; let userList = ; let config =

配置管理

let help = let log = if (this.props.data === "login"){ return login; }else if (this.props.data === "user_list"){ return userList; }else if (this.props.data === "help"){ return help; } else if (this.props.data === "log"){ return log; } else { return config; } } componentWillUnmount() { if (this.state.check !== undefined){ clearInterval(this.state.check) } } click = async () => { let data = await getLink() this.setState({ img: data.url }) let check = setInterval(async ()=>{ let resp = await checkQrCode(data.code); if (resp.success){ clearInterval(check) console.log("登录成功") console.log(resp.data) let token = await getToken(resp.data.split("=")[1],data.sign) console.log(token) if (token.success){ Toast.show("登录成功") } } },5000) this.setState({ check: check }) setTimeout(()=>{ clearInterval(check) },1000*300) let element = document.createElement("a"); element.href = "dtxuexi://appclient/page/study_feeds?url="+escape(data.url) element.click() } } class Log extends Component{ constructor(props:any) { super(props); this.state = { data : "" } } reverse = ( str:string ):string=>{ return str.split("\n").reverse().join("\n").trim() }; timer: any componentDidMount() { getLog().then(data=>{ this.setState({ data:this.reverse(data) }) }) this.timer = setInterval(()=>{ getLog().then((data:string)=>{ this.setState({ data:this.reverse(data) }) }) },30000) } componentWillUnmount() { clearInterval(this.timer) } render() { return <>