{"version":3,"sources":["reportWebVitals.js","util/mtop.js","auth/AuthContext.js","auth/AuthChecker.js","layout/MainLayout.js","page/ProxyHttpPage.js","page/ProxyPortPage.js","page/PageFrp.js","page/Login.js","App.js","index.js"],"names":["reportWebVitals","onPerfEntry","Function","then","_ref","getCLS","getFID","getFCP","getLCP","getTTFB","logoutHandler","generateUrl","url","formParams","paramString","qs","stringify","callLogout","mtop","absoluteUrl","setLogoutHandler","handler","get","_get","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","wrap","_context","prev","next","axios","sent","data","code","abrupt","t0","success","desc","message","stop","_x","_x2","apply","arguments","post","_post","_callee2","formValues","_context2","_x3","_x4","put","_put","_callee3","_context3","_x5","_x6","delete","_delete2","_callee4","_context4","_x7","_x8","Context","createContext","AuthConext","props","_useState","useState","_useState2","_slicedToArray","user","setUser","_useState3","_useState4","checking","setChecking","history","useHistory","logout","push","loginPath","error","content","style","marginTop","useEffect","_jsx","Provider","value","check","model","haveRights","expression","rights","undefined","rightSeg","split","indexOf","i","length","children","ProSkeleton","type","pageHeader","useAuth","useContext","AuthChecker","auth","_Fragment","Skeleton","route","path","routes","icon","SmileOutlined","name","UserSwitchOutlined","filterRoute","subRoutes","fr","_objectSpread","MainLayout","_ref$showContainer","showContainer","location","useLocation","menu","_jsxs","Menu","Item","Link","to","onClick","Modal","confirm","title","onOk","ProLayout","menuItemRender","item","dom","href","replace","setTimeout","rightContentRender","Dropdown","overlay","Avatar","shape","size","UserOutlined","PageContainer","ProxyHttpPage","columns","dataIndex","render","record","useProxyHost","Space","onClickEditButton","requestData","params","sort","filter","sucess","total","map","v","key","id","dialogVisible","setDialogVisible","curItem","setCurItem","_useState5","_useState6","selectedIds","setSelectedIds","tableRef","useRef","onClickCreateButton","onClickDeleteButton","ids","join","info","current","reload","clearSelected","ProTable","headerTitle","actionRef","rowSelection","onChange","keys","rows","request","search","toolBarRender","Button","PlusOutlined","top","visible","destroyOnClose","onCancel","footer","maskClosable","Form","labelCol","span","onFinish","values","console","log","autoComplete","initialValues","label","rules","required","Input","Select","Option","InputNumber","htmlType","ProxyTcpPage","RoutesPage","LoginLayout","loading","setLoading","className","height","remember","prefix","placeholder","LockOutlined","App","Switch","Route","Login","ProxyPortPage","PageFrp","moment","locale","ReactDOM","HashRouter","AuthContext","ConfigProvider","document","getElementById"],"mappings":"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","file":"static/js/main.ddc467d0.chunk.js","sourcesContent":["const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import axios from 'axios';\r\nimport qs from 'qs';\r\n\r\nconst BASE_URL = \"\";\r\nlet logoutHandler = null;\r\n\r\nfunction generateUrl(url, formParams) {\r\n let paramString = qs.stringify(formParams);\r\n if (paramString != \"\") {\r\n paramString = \"?\" + paramString;\r\n }\r\n return url + paramString;\r\n}\r\n\r\nfunction callLogout() {\r\n if (logoutHandler != null) {\r\n logoutHandler();\r\n }\r\n}\r\n\r\nconst mtop = {\r\n absoluteUrl: (url) => {\r\n return BASE_URL + url;\r\n },\r\n setLogoutHandler: (handler) => {\r\n logoutHandler = handler;\r\n },\r\n get: async (url, formParams) => {\r\n try {\r\n let response = await axios.get(generateUrl(BASE_URL + url, formParams));\r\n if (response.data.code == \"NOT_LOGIN\") {\r\n callLogout();\r\n }\r\n return response.data;\r\n } catch (error) {\r\n return {\r\n success: false,\r\n code: 'NET_ERROR',\r\n desc: error.message\r\n }\r\n }\r\n },\r\n post: async (url, formValues) => {\r\n try {\r\n let response = await axios.post(BASE_URL + url, formValues);\r\n if (response.data.code == \"NOT_LOGIN\") {\r\n callLogout();\r\n }\r\n return response.data;\r\n } catch (error) {\r\n return {\r\n success: false,\r\n code: 'NET_ERROR',\r\n desc: error.message\r\n }\r\n }\r\n },\r\n put: async (url, formValues) => {\r\n try {\r\n let response = await axios.put(BASE_URL + url, formValues);\r\n if (response.data.code == \"NOT_LOGIN\") {\r\n callLogout();\r\n }\r\n return response.data;\r\n } catch (error) {\r\n return {\r\n success: false,\r\n code: 'NET_ERROR',\r\n desc: error.message\r\n }\r\n }\r\n },\r\n delete: async (url, formParams) => {\r\n try {\r\n let response = await axios.delete(generateUrl(BASE_URL + url, formParams));\r\n if (response.data.code == \"NOT_LOGIN\") {\r\n callLogout();\r\n }\r\n return response.data;\r\n } catch (error) {\r\n return {\r\n success: false,\r\n code: 'NET_ERROR',\r\n desc: error.message\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default mtop;\r\n","import { useState, useEffect, createContext, useContext } from 'react';\r\nimport ProSkeleton from '@ant-design/pro-skeleton';\r\nimport mtop from '../util/mtop';\r\nimport {useHistory} from 'react-router-dom';\r\nimport { message } from 'antd';\r\n\r\nconst Context = createContext(null);\r\n\r\nfunction haveRights(expression,rights) {\r\n if(expression===null || expression===\"\" || expression===undefined){\r\n return true;\r\n }\r\n let rightSeg = expression.split(/&|\\|/)\r\n let isAnd = expression.indexOf(\"&\")!=-1;\r\n if(isAnd){\r\n for(let i=0;i{\r\n if(checking){\r\n return;\r\n }\r\n setChecking(true);\r\n mtop.get(\"/gateway/session\")\r\n .then((data) => {\r\n setChecking(false);\r\n if (data.success) {\r\n //username,usernick,rights\r\n setUser(data.model)\r\n } else {\r\n history.push(props.loginPath);\r\n }\r\n })\r\n }\r\n const logout=()=>{\r\n setChecking(true);\r\n setUser(null);\r\n mtop.get(\"/gateway/session/logout\")\r\n .then((data)=>{\r\n setChecking(false);\r\n if (data.success) {\r\n history.push(props.loginPath);\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n })\r\n }\r\n useEffect(()=>{\r\n mtop.setLogoutHandler(logout);\r\n },[])\r\n\r\n return (\r\n {\r\n return haveRights(expression,user.rights);\r\n }\r\n }}>\r\n {\r\n checking ? (\r\n \r\n ) : props.children\r\n }\r\n \r\n )\r\n}\r\n\r\nexport function useAuth() {\r\n return useContext(Context);\r\n}\r\n","import { useAuth } from './AuthContext';\r\nimport {Skeleton} from 'antd';\r\nimport {Redirect} from 'react-router-dom';\r\nimport { useEffect, useState } from 'react';\r\nexport default function AuthChecker(props) {\r\n const [checking,setChecking]=useState(true);\r\n const auth = useAuth();\r\n useEffect(()=>{\r\n if(auth.user==null){\r\n auth.check();\r\n } else {\r\n setChecking(false);\r\n }\r\n },[])\r\n // 如果已经登录\r\n return (\r\n <>\r\n {\r\n auth.user==null?():props.children\r\n }\r\n \r\n )\r\n}\r\n","import ProLayout, { PageContainer, SettingDrawer } from '@ant-design/pro-layout';\r\nimport { Link, useLocation,useHistory } from 'react-router-dom';\r\nimport { Avatar, Menu, Dropdown ,Modal} from 'antd';\r\nimport {useAuth} from '../auth/AuthContext';\r\n// 图标请参考:https://ant.design/components/icon-cn/\r\nimport { SmileOutlined, SettingOutlined, MoneyCollectOutlined, UserOutlined,\r\n FileOutlined,UserSwitchOutlined,GiftOutlined,AlipayOutlined,ShareAltOutlined} from '@ant-design/icons';\r\n\r\nconst route = {\r\n path: '/',\r\n routes: [\r\n {\r\n icon: ,\r\n name: '欢迎',\r\n path: '/'\r\n },\r\n {\r\n icon: ,\r\n name: '代理管理',\r\n children:[\r\n {\r\n icon: ,\r\n name: 'HTTP',\r\n path: '/proxy/http',\r\n },\r\n {\r\n icon: ,\r\n name: '通用端口',\r\n path: '/proxy/port',\r\n }\r\n ]\r\n },\r\n {\r\n icon: ,\r\n name: '隧道管理',\r\n path: '/frp'\r\n }\r\n ]\r\n}\r\n\r\nfunction filterRoute(route,auth){\r\n if(route.rights!=null){\r\n if(!auth.haveRights(route.rights)) {\r\n return null;\r\n }\r\n }\r\n\r\n let subRoutes=null;\r\n if(route.routes!=null){\r\n subRoutes=[];\r\n for(let i=0;i{\r\n Modal.confirm({\r\n title:'退出登录',\r\n content:'确认要退出当前的账号吗',\r\n onOk:()=>{\r\n auth.logout();\r\n }\r\n })\r\n }\r\n\r\n const menu = (\r\n \r\n \r\n 修改资料\r\n \r\n \r\n 退出登录\r\n \r\n \r\n );\r\n\r\n return (\r\n (\r\n {\r\n history.replace(\"/loading\");\r\n setTimeout(()=>{\r\n history.replace(item.path);\r\n },1);\r\n }}>{dom}\r\n )\r\n }\r\n rightContentRender={() => (\r\n
\r\n \r\n } />\r\n \r\n
\r\n )}\r\n >\r\n {\r\n showContainer?(\r\n \r\n {children}\r\n \r\n ):(\r\n children\r\n )\r\n }\r\n \r\n \r\n )\r\n}","import ProTable from '@ant-design/pro-table';\r\nimport { Button, message, Modal, Form, Input, Space, Select, Tag, InputNumber } from 'antd';\r\nimport mtop from '../util/mtop';\r\nimport { PlusOutlined } from '@ant-design/icons';\r\nimport { useRef, useState } from 'react';\r\n\r\n\r\nexport default function ProxyHttpPage(props) {\r\n const columns = [\r\n {\r\n title: 'ID',\r\n dataIndex: 'id'\r\n },\r\n {\r\n title: '请求域名',\r\n dataIndex: 'reqHost'\r\n },\r\n {\r\n title: '代理协议',\r\n dataIndex: 'proxyType'\r\n },\r\n {\r\n title: '代理域名',\r\n dataIndex: 'proxyHost'\r\n },\r\n {\r\n title: '代理端口',\r\n dataIndex: 'proxyPort'\r\n },\r\n {\r\n title: 'Host传递策略',\r\n render: (record)=> record.useProxyHost?\"使用代理域名\":\"使用请求域名\"\r\n },\r\n {\r\n title: 'FRP Id',\r\n dataIndex: 'frpId'\r\n },\r\n {\r\n title: '操作',\r\n render: (record) => (\r\n \r\n { onClickEditButton(record) }}>编辑\r\n \r\n )\r\n }\r\n ]\r\n const requestData = async (params, sort, filter) => {\r\n let data = await mtop.get(\"/gateway/proxy/http\", params)\r\n if (data.success) {\r\n return {\r\n sucess: true,\r\n total: data.model.total,\r\n data: data.model.data.map((v) => ({\r\n ...v,\r\n key: v.id\r\n }))\r\n }\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n }\r\n const [dialogVisible, setDialogVisible] = useState(false);\r\n const [curItem, setCurItem] = useState(null);\r\n const [selectedIds, setSelectedIds] = useState([]);\r\n\r\n const tableRef = useRef();\r\n\r\n\r\n const onFormFinish = (values) => {\r\n console.log(values);\r\n let promise = null\r\n if (curItem == null) {\r\n promise = mtop.put(\"/gateway/proxy/http\", values)\r\n } else {\r\n promise = mtop.post(\"/gateway/proxy/http\", {\r\n ...values,\r\n id: curItem.id\r\n })\r\n }\r\n promise.then((data) => {\r\n if (data.success) {\r\n setDialogVisible(false);\r\n if (curItem == null) {\r\n message.info({content:\"创建成功\",style:{marginTop:\"45vh\"}});\r\n } else {\r\n message.info({content:\"更新成功\",style:{marginTop:\"45vh\"}});\r\n }\r\n tableRef.current.reload();\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n })\r\n }\r\n\r\n const onClickCreateButton = () => {\r\n setCurItem(null);\r\n setDialogVisible(true);\r\n }\r\n const onClickEditButton = (record) => {\r\n setCurItem(record);\r\n setDialogVisible(true);\r\n }\r\n const onClickDeleteButton = () => {\r\n Modal.confirm({\r\n title: '确认删除',\r\n content: \"删除操作无法恢复,确认要删除选中的\" + selectedIds.length + \"条记录吗?\",\r\n onOk: () => {\r\n mtop.delete(\"/gateway/proxy/http\", { ids: selectedIds.join(',') })\r\n .then((data) => {\r\n if (data.success) {\r\n message.info({content:\"删除成功\",style:{marginTop:\"45vh\"}});\r\n tableRef.current.reload();\r\n tableRef.current.clearSelected();\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n })\r\n }\r\n })\r\n }\r\n const onSelectionChange = (keys, rows) => {\r\n setSelectedIds(keys);\r\n }\r\n return (\r\n
\r\n [\r\n selectedIds.length > 0 &&\r\n ,\r\n \r\n ]}\r\n >\r\n \r\n { setDialogVisible(false); }}\r\n title={curItem == null ? \"创建\" : \"编辑\"}\r\n footer={null}\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}","import ProTable from '@ant-design/pro-table';\r\nimport { Button, message, Modal, Form, Input, Space, Select, Tag, InputNumber } from 'antd';\r\nimport mtop from '../util/mtop';\r\nimport { PlusOutlined } from '@ant-design/icons';\r\nimport { useRef, useState } from 'react';\r\n\r\n\r\nexport default function ProxyTcpPage(props) {\r\n const columns = [\r\n {\r\n title: 'ID',\r\n dataIndex: 'id'\r\n },\r\n {\r\n title: '请求端口',\r\n dataIndex: 'reqPort'\r\n },\r\n {\r\n title: '代理协议',\r\n dataIndex: 'proxyType'\r\n },\r\n {\r\n title: '代理IP',\r\n dataIndex: 'proxyHost'\r\n },\r\n {\r\n title: '代理端口',\r\n dataIndex: 'proxyPort'\r\n },\r\n {\r\n title: 'FRP Id',\r\n dataIndex: 'frpId'\r\n },\r\n {\r\n title: '操作',\r\n render: (record) => (\r\n \r\n { onClickEditButton(record) }}>编辑\r\n \r\n )\r\n }\r\n ]\r\n const requestData = async (params, sort, filter) => {\r\n let data = await mtop.get(\"/gateway/proxy/port\", params)\r\n if (data.success) {\r\n return {\r\n sucess: true,\r\n total: data.model.total,\r\n data: data.model.data.map((v) => ({\r\n ...v,\r\n key: v.id\r\n }))\r\n }\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n }\r\n const [dialogVisible, setDialogVisible] = useState(false);\r\n const [curItem, setCurItem] = useState(null);\r\n const [selectedIds, setSelectedIds] = useState([]);\r\n\r\n const tableRef = useRef();\r\n\r\n\r\n const onFormFinish = (values) => {\r\n console.log(values);\r\n let promise = null\r\n if (curItem == null) {\r\n promise = mtop.put(\"/gateway/proxy/port\", values)\r\n } else {\r\n promise = mtop.post(\"/gateway/proxy/port\", {\r\n ...values,\r\n id: curItem.id\r\n })\r\n }\r\n promise.then((data) => {\r\n if (data.success) {\r\n setDialogVisible(false);\r\n if (curItem == null) {\r\n message.info({content:\"创建成功\",style:{marginTop:\"45vh\"}});\r\n } else {\r\n message.info({content:\"更新成功\",style:{marginTop:\"45vh\"}});\r\n }\r\n tableRef.current.reload();\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n })\r\n }\r\n\r\n const onClickCreateButton = () => {\r\n setCurItem(null);\r\n setDialogVisible(true);\r\n }\r\n const onClickEditButton = (record) => {\r\n setCurItem(record);\r\n setDialogVisible(true);\r\n }\r\n const onClickDeleteButton = () => {\r\n Modal.confirm({\r\n title: '确认删除',\r\n content: \"删除操作无法恢复,确认要删除选中的\" + selectedIds.length + \"条记录吗?\",\r\n onOk: () => {\r\n mtop.delete(\"/gateway/proxy/port\", { ids: selectedIds.join(',') })\r\n .then((data) => {\r\n if (data.success) {\r\n message.info({content:\"删除成功\",style:{marginTop:\"45vh\"}});\r\n tableRef.current.reload();\r\n tableRef.current.clearSelected();\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n })\r\n }\r\n })\r\n }\r\n const onSelectionChange = (keys, rows) => {\r\n setSelectedIds(keys);\r\n }\r\n return (\r\n
\r\n [\r\n selectedIds.length > 0 &&\r\n ,\r\n \r\n ]}\r\n >\r\n \r\n { setDialogVisible(false); }}\r\n title={curItem == null ? \"创建\" : \"编辑\"}\r\n footer={null}\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}","import ProTable from '@ant-design/pro-table';\r\nimport { Button, message, Modal, Form, Input, Space, Select, Tag, InputNumber } from 'antd';\r\nimport mtop from '../util/mtop';\r\nimport { PlusOutlined } from '@ant-design/icons';\r\nimport { useRef, useState } from 'react';\r\n\r\n\r\nexport default function RoutesPage(props) {\r\n const columns = [\r\n {\r\n title: 'ID',\r\n dataIndex: 'id'\r\n },\r\n {\r\n title: '名字',\r\n dataIndex: 'name'\r\n },\r\n {\r\n title: '密钥',\r\n dataIndex: 'authKey'\r\n },\r\n {\r\n title: '活跃',\r\n dataIndex: 'lastActiveTime'\r\n },\r\n {\r\n title: '操作',\r\n render: (record) => (\r\n \r\n { onClickEditButton(record) }}>编辑\r\n \r\n )\r\n }\r\n ]\r\n const requestData = async (params, sort, filter) => {\r\n let data = await mtop.get(\"/gateway/frp\", params)\r\n if (data.success) {\r\n return {\r\n sucess: true,\r\n total: data.model.total,\r\n data: data.model.data.map((v) => ({\r\n ...v,\r\n key: v.id\r\n }))\r\n }\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n }\r\n const [dialogVisible, setDialogVisible] = useState(false);\r\n const [curItem, setCurItem] = useState(null);\r\n const [selectedIds, setSelectedIds] = useState([]);\r\n\r\n const tableRef = useRef();\r\n\r\n\r\n const onFormFinish = (values) => {\r\n console.log(values);\r\n let promise = null\r\n if (curItem == null) {\r\n promise = mtop.put(\"/gateway/frp\", values)\r\n } else {\r\n promise = mtop.post(\"/gateway/frp\", {\r\n ...values,\r\n id: curItem.id\r\n })\r\n }\r\n promise.then((data) => {\r\n if (data.success) {\r\n setDialogVisible(false);\r\n if (curItem == null) {\r\n message.info({content:\"创建成功\",style:{marginTop:\"45vh\"}});\r\n } else {\r\n message.info({content:\"更新成功\",style:{marginTop:\"45vh\"}});\r\n }\r\n tableRef.current.reload();\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n })\r\n }\r\n\r\n const onClickCreateButton = () => {\r\n setCurItem(null);\r\n setDialogVisible(true);\r\n }\r\n const onClickEditButton = (record) => {\r\n setCurItem(record);\r\n setDialogVisible(true);\r\n }\r\n const onClickDeleteButton = () => {\r\n Modal.confirm({\r\n title: '确认删除',\r\n content: \"删除操作无法恢复,确认要删除选中的\" + selectedIds.length + \"条记录吗?\",\r\n onOk: () => {\r\n mtop.delete(\"/gateway/frp\", { ids: selectedIds.join(',') })\r\n .then((data) => {\r\n if (data.success) {\r\n message.info({content:\"删除成功\",style:{marginTop:\"45vh\"}});\r\n tableRef.current.reload();\r\n tableRef.current.clearSelected();\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n })\r\n }\r\n })\r\n }\r\n const onSelectionChange = (keys, rows) => {\r\n setSelectedIds(keys);\r\n }\r\n return (\r\n
\r\n [\r\n selectedIds.length > 0 &&\r\n ,\r\n \r\n ]}\r\n >\r\n \r\n { setDialogVisible(false); }}\r\n title={curItem == null ? \"创建\" : \"编辑\"}\r\n footer={null}\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}","import React, { useState } from 'react';\r\nimport { Form, Input, Button, message } from 'antd';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { UserOutlined, LockOutlined } from '@ant-design/icons';\r\nimport mtop from '../util/mtop';\r\nimport './login.css';\r\n\r\nfunction LoginLayout(props) {\r\n const [loading, setLoading] = useState(false);\r\n const history = useHistory();\r\n const onFinish = (values) => {\r\n setLoading(true);\r\n mtop.get(\"/gateway/session/login\", values)\r\n .then((data) => {\r\n setLoading(false);\r\n if (data.success) {\r\n message.info({content:\"登录成功\",style:{marginTop:\"45vh\"}});\r\n history.push(\"/\");\r\n } else {\r\n message.error({content:data.desc,style:{marginTop:\"45vh\"}});\r\n }\r\n })\r\n };\r\n return (\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

账户密码登录

\r\n
\r\n
\r\n \r\n \r\n } placeholder=\"用户名\" />\r\n \r\n \r\n }\r\n type=\"password\"\r\n placeholder=\"密码\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default LoginLayout;\r\n","import { Switch, Route } from 'react-router-dom';\r\nimport AuthChecker from './auth/AuthChecker';\r\nimport MainLayout from './layout/MainLayout';\r\n\r\nimport ProxyHttpPage from './page/ProxyHttpPage';\r\nimport ProxyPortPage from './page/ProxyPortPage';\r\nimport PageFrp from './page/PageFrp';\r\nimport Login from \"./page/Login\";\r\n\r\nfunction App() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nimport App from './App';\r\nimport AuthContext from './auth/AuthContext';\r\nimport {HashRouter} from 'react-router-dom';\r\nimport 'antd/dist/antd.css';\r\nimport '@ant-design/pro-form/dist/form.css';\r\nimport '@ant-design/pro-table/dist/table.css';\r\nimport '@ant-design/pro-layout/dist/layout.css';\r\nimport locale from 'antd/lib/locale/zh_CN';\r\nimport { ConfigProvider } from 'antd';\r\nimport moment from 'moment';\r\nimport 'moment/locale/zh-cn';\r\nmoment.locale('zh-cn');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}