提交 f8bd6405 authored 作者: 王绍森's avatar 王绍森

初始化项目

上级 fbd2e390
......@@ -5,7 +5,9 @@
"dependencies": {
"react": "^16.9.0",
"react-dom": "^16.9.0",
"react-scripts": "3.1.1"
"react-router-dom": "^5.0.1",
"react-scripts": "3.1.1",
"styled-components": "^4.3.2"
},
"scripts": {
"start": "react-scripts start",
......
public/favicon.ico

3.8 KB | W: | H:

public/favicon.ico

15.0 KB | W: | H:

public/favicon.ico
public/favicon.ico
public/favicon.ico
public/favicon.ico
  • 2-up
  • Swipe
  • Onion skin
......@@ -24,7 +24,7 @@
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
<title>植物营养元素缺素症</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
......
{
"short_name": "React App",
"name": "Create React App Sample",
"short_name": "",
"name": "",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
......
.App {
text-align: center;
}
.App-logo {
animation: App-logo-spin infinite 20s linear;
height: 40vmin;
pointer-events: none;
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
import React from 'react';
import logo from './logo.svg';
import './App.css';
import {BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import Home from './pages/Home';
import Corn from './pages/corn';
import Wheat from './pages/wheat';
import Rape from './pages/rape';
import Tomato from './pages/tomato';
import rapeGetComponent from './pages/rape/getComponent';
import InfoCmp from './components/InfoComponent.js'
import tomatoGetCmp from './pages/tomato/getComponent';
import cornGetCmp from './pages/corn/getComponent';
import wheatGetCmp from './pages/wheat/getComponent';
const rapeList = ['n', 'p', 'k', 'ga', 'mg', 'zn', 'b', 's'];
const tomatoList = ['n', 'p', 'k', 'ga', 'mg', 'zn', 'b', 's', 'mu'];
const cornList = ['n', 'p', 'k', 'zn', 'b'];
const wheatList = ['n', 'p', 'k', 'ga', 'mg', 'zn', 'b', 'mn', 'fe'];
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
<Router>
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/corn" component={Corn} />
<Route exact path="/rape" component={Rape} />
<Route exact path="/wheat" component={Wheat} />
<Route exact path="/tomato" component={Tomato} />
{
rapeList.map((name, idx) => {
const Cmp = rapeGetComponent([Math.floor(idx / 4), idx % 4]);
return (
<Route key={'rape-'+name} exact path={'/rape/lack-of-' + name} component={Cmp} />
);
})
}
{
rapeList.map(name => (
<Route
key={'rape'+ name+'info'}
exact
path={'/rape/lack-of-' + name + '/info'}
component={() => <InfoCmp category='rape' element={name} />}
/>
))
}
{
tomatoList.map((name, idx) => (
<Route
exact
key={'tomato-'+name}
path={'/tomato/lack-of-' + name}
component={tomatoGetCmp(idx)}
/>
))
}
{
tomatoList.map((name, idx) => (
<Route
exact
key={'tomato-'+name+'info'}
path={'/tomato/lack-of-' + name+'/info'}
component={() => <InfoCmp category='tomato' element={name} />}
/>
))
}
{
cornList.map((name, idx) => (
<Route
exact
key={'corn-'+name}
path={'/corn/lack-of-' + name}
component={cornGetCmp(idx)}
/>
))
}
{
cornList.map((name, idx) => (
<Route
exact
key={'corn-'+name+'info'}
path={'/corn/lack-of-' + name+'/info'}
component={() => <InfoCmp category='corn' element={name} />}
/>
))
}
{
wheatList.map((name, idx) => (
<Route
exact
key={'wheat-'+name}
path={'/wheat/lack-of-' + name}
component={wheatGetCmp(idx)}
/>
))
}
{
wheatList.map((name, idx) => (
<Route
exact
key={'wheat-'+name+'info'}
path={'/wheat/lack-of-' + name+'/info'}
component={() => <InfoCmp category='wheat' element={name} />}
/>
))
}
</Switch>
</Router>
);
}
......
import React from 'react';
import { Link } from 'react-router-dom';
import styled from 'styled-components';
import EleWithBg from './EleWithBg'
const StyledEle = styled(EleWithBg)`
transition: transform 250ms ease;
&:active {
transform: translate(10px, 10px);
}
cursor: pointer;
`;
const AnimatedBtn = ({ children, ...props}) => (
<StyledEle forwardedAs={Link} {...props} >{ children } </StyledEle>
);
export default AnimatedBtn;
\ No newline at end of file
import React from 'react';
import styled from 'styled-components';
import { withRouter } from 'react-router-dom';
import BackGround from './BackGround';
import AnimatedBtn from './AnimatedBtn';
import BackImg from '../仿真软件-植物营养元素缺素症切图/通用/返回.png';
import HomeImg from '../仿真软件-植物营养元素缺素症切图/通用/主页.png';
import { convertpx2vw } from '../config';
const StyledNavBtn = styled(AnimatedBtn)`
bottom: ${convertpx2vw(23)};
position: absolute;
width: ${convertpx2vw(90)};
height: ${convertpx2vw(90)};
`;
const StyledBackBtn = styled(StyledNavBtn)`
right: ${convertpx2vw(149)};
`;
const StyledHomeBtn = styled(StyledNavBtn)`
right: ${convertpx2vw(23)};
`;
const BackBtn = withRouter(({ history }) => {
function handleClick(e) {
e.preventDefault();
history.goBack();
}
return <StyledBackBtn bg={BackImg} to="#" onClick={e => handleClick(e)} />
});
const HomeBtn = () => <StyledHomeBtn bg={HomeImg} to="/" />
export default function BGWithNavBtn({ className, children, bg }) {
return (
<BackGround className={className} bg={bg} >
{ children }
<BackBtn />
<HomeBtn />
</BackGround>
);
}
\ No newline at end of file
import React from 'react';
import BgImg from '../仿真软件-植物营养元素缺素症切图/通用/背景.png';
import styled from 'styled-components';
import EleWithBg from './EleWithBg';
const StyledBg = styled(EleWithBg)`
height: 100%;
background-size: cover;
`;
const BackGround = ({children, bg, ...props}) => <StyledBg bg={bg || BgImg} {...props}>{ children }</StyledBg>;
export default BackGround;
\ No newline at end of file
import React from 'react';
import styled from 'styled-components';
const EleWithBg = styled.div`
background-repeat: no-repeat;
background-position: center;
background-size: contain;
background-image: ${props => `url(${props.bg})`};
user-select: none;
`
// export default EleWithBg;
export default function({ as, className, bg, children, to, onClick}) {
// console.log('props: ', props);
return <EleWithBg as={as} className={className} to={to} onClick={onClick} bg={bg}>{children}</EleWithBg>;
}
import React from 'react';
import BGWithNavBtn from './BGWithNavBtn';
import Rape_Mg from '../仿真软件-植物营养元素缺素症切图/3油菜/3.11.png'
import Rape_N from '../仿真软件-植物营养元素缺素症切图/3油菜/3.21.png'
import Rape_B from '../仿真软件-植物营养元素缺素症切图/3油菜/3.31.png'
import Rape_S from '../仿真软件-植物营养元素缺素症切图/3油菜/3.41.png'
import Rape_P from '../仿真软件-植物营养元素缺素症切图/3油菜/3.51.png'
import Rape_Ga from '../仿真软件-植物营养元素缺素症切图/3油菜/3.61.png'
import Rape_K from '../仿真软件-植物营养元素缺素症切图/3油菜/3.71.png'
import Rape_Zn from '../仿真软件-植物营养元素缺素症切图/3油菜/3.81.png'
import Tomato_Zn from '../仿真软件-植物营养元素缺素症切图/4西红柿/4.11.png'
import Tomato_B from '../仿真软件-植物营养元素缺素症切图/4西红柿/4.21.png'
import Tomato_S from '../仿真软件-植物营养元素缺素症切图/4西红柿/4.31.png'
import Tomato_K from '../仿真软件-植物营养元素缺素症切图/4西红柿/4.41.png'
import Tomato_N from '../仿真软件-植物营养元素缺素症切图/4西红柿/4.51.png'
import Tomato_Ga from '../仿真软件-植物营养元素缺素症切图/4西红柿/4.61.png'
import Tomato_P from '../仿真软件-植物营养元素缺素症切图/4西红柿/4.71.png'
import Tomato_Mg from '../仿真软件-植物营养元素缺素症切图/4西红柿/4.81.png'
import Tomato_Mu from '../仿真软件-植物营养元素缺素症切图/4西红柿/4.91.png'
import Corn_N from '../仿真软件-植物营养元素缺素症切图/1玉米/1.11.png';
import Corn_P from '../仿真软件-植物营养元素缺素症切图/1玉米/1.21.png';
import Corn_K from '../仿真软件-植物营养元素缺素症切图/1玉米/1.31.png';
import Corn_Zn from '../仿真软件-植物营养元素缺素症切图/1玉米/1.41.png';
import Corn_B from '../仿真软件-植物营养元素缺素症切图/1玉米/1.51.png';
import Wheat_N from '../仿真软件-植物营养元素缺素症切图/2小麦/2.11.png';
import Wheat_P from '../仿真软件-植物营养元素缺素症切图/2小麦/2.21.png';
import Wheat_K from '../仿真软件-植物营养元素缺素症切图/2小麦/2.31.png';
import Wheat_Zn from '../仿真软件-植物营养元素缺素症切图/2小麦/2.41.png';
import Wheat_B from '../仿真软件-植物营养元素缺素症切图/2小麦/2.51.png';
import Wheat_Mn from '../仿真软件-植物营养元素缺素症切图/2小麦/2.61.png';
import Wheat_Fe from '../仿真软件-植物营养元素缺素症切图/2小麦/2.71.png';
import Wheat_Mg from '../仿真软件-植物营养元素缺素症切图/2小麦/2.81.png';
import Wheat_Ga from '../仿真软件-植物营养元素缺素症切图/2小麦/2.91.png';
const bgs = {
rape: {
mg: Rape_Mg,
n: Rape_N,
b: Rape_B,
s: Rape_S,
p: Rape_P,
ga: Rape_Ga,
k: Rape_K,
zn: Rape_Zn,
},
tomato: {
n: Tomato_N,
p: Tomato_P,
k: Tomato_K,
ga: Tomato_Ga,
mg: Tomato_Mg,
zn: Tomato_Zn,
b: Tomato_B,
s: Tomato_S,
mu: Tomato_Mu
},
corn: {
n: Corn_N ,
p: Corn_P ,
k: Corn_K ,
zn: Corn_Zn ,
b: Corn_B
},
wheat: {
n: Wheat_N ,
p: Wheat_P ,
k: Wheat_K ,
ga: Wheat_Ga ,
mg: Wheat_Mg ,
zn: Wheat_Zn ,
b: Wheat_B ,
mn: Wheat_Mn ,
fe: Wheat_Fe,
}
}
export default function InfoComponent({ category, element }) {
return <BGWithNavBtn bg={bgs[category][element]} />
}
\ No newline at end of file
export const USE_VW = true;
export function convertpx2vw(px) { return USE_VW ? px / 16 + 'vw' : px + 'px'}
\ No newline at end of file
body {
html, body, #root {
height: 100%;
padding: 0;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
"Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
monospace;
}
......@@ -2,11 +2,11 @@ import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
// import * as serviceWorker from './serviceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();
// serviceWorker.unregister();
import React, { useState } from 'react';
import { withRouter } from 'react-router-dom';
import styled from 'styled-components';
import BGWithNavBtn from '../components/BGWithNavBtn';
import AnimatedBtn from '../components/AnimatedBtn';
import WrongImg from '../仿真软件-植物营养元素缺素症切图/通用/×.png';
import CorrectImg from '../仿真软件-植物营养元素缺素症切图/通用/√.png';
import { convertpx2vw } from '../config';
const Container = styled(BGWithNavBtn)`
display: block;
overflow: hidden;
background-size: contain;
background-repeat: repeat-x;
`;
const StyledBtn = styled(AnimatedBtn)`
width: ${props => convertpx2vw(props.w)};
height: ${props => convertpx2vw(props.h)};
:not(:first-child) {
margin-left: ${props => convertpx2vw(props.leftgap)};
}
position: relative;
`;
const Row = styled.div`
display: flex;
flex-direction: row;
justify-content: center;
margin-top: ${props => convertpx2vw(props.marginTop)};
`;
const MarkImg = styled.img`
position: absolute;
bottom: ${convertpx2vw(20)};
left: 50%;
transform: translateX(-50%);
visibility: ${props => props.show ? 'visible' : 'hidden'};
`;
const WrongMark = styled(MarkImg)`
width: ${convertpx2vw(39)};
height: ${convertpx2vw(39)};
`;
const CorrectMark = styled(MarkImg)`
width: ${convertpx2vw(51)};
height: ${convertpx2vw(43)};
`;
const CheckBtn = withRouter(({ w, h, leftGap, bg, to, history }) => {
const [showCheckMark, setShowCheckMark] = useState(false);
function handleClick(e) {
e.preventDefault();
setShowCheckMark(true);
if(to !== '#') {
setTimeout(() => {
history.push(to);
}, 500);
}
}
return (
<StyledBtn
w={w}
h={h}
leftgap={leftGap}
bg={bg}
to={to}
onClick={e => handleClick(e)}
>
{
to !== '#' ? <CorrectMark show={showCheckMark} src={CorrectImg} /> : <WrongMark show={showCheckMark} src={WrongImg} />
}
</StyledBtn>
);
});
/**
* Check Lack layout
* config = {
* bg,
* btns: {
* w,
* h,
* marginTop,
* leftGap,
* topGap,
* rows: [
* [
* {bg, to},
* ]
* ]
* }
* }
*/
export default function CheckLack({ config }) {
return (
<Container bg={config.bg}>
{
config.btns.rows.map((row, idx) => (
<Row
key={idx}
marginTop={idx === 0 ? config.btns.marginTop : config.btns.topGap}
>
{
row.map((ele, i) => (
<CheckBtn
key={i}
w={config.btns.w}
h={config.btns.h}
leftGap={config.btns.leftGap}
bg={ele.bg}
to={ele.to || '#'}
/>
))
}
</Row>
))
}
</Container>
);
}
\ No newline at end of file
import React from 'react';
import styled from 'styled-components';
import BGWithNavBtn from '../components/BGWithNavBtn';
import AnimatedBtn from '../components/AnimatedBtn';
import { convertpx2vw } from '../config';
const Container = styled(BGWithNavBtn)`
display: flex;
flex-direction: ${props => props.rowLayout ? 'column' : 'row'};
justify-content: ${props => props.rowLayout ? 'center' : 'space-evenly'};
`;
const StyledBtn = styled(AnimatedBtn)`
width: ${props => convertpx2vw(props.w)};
height: ${props => convertpx2vw(props.h)};
:not(:first-child) {
margin-top: ${props => (!props.rowLayout ? convertpx2vw(props.rowgap): convertpx2vw(0))};
margin-left: ${props => (props.rowLayout ? convertpx2vw(props.rowgap): convertpx2vw(0))};
}
`;
const Column = styled.div`
display: flex;
flex-direction: ${props => props.rowLayout ? 'row' : 'column'};
justify-content: center;
`;
/**
* Three columns layout
* @param {Array} config.columns, [[{bg, to}], [{bg, to}], [{bg to}]]
* @param {Number} config.w element's width
* @param {Number} config.h element's height
* @param {Number} config.rowGap element's row gap between element
* @param {Boolean} rowLayout if is rowlayout
*/
export default function ThreeColumnsLayout({ config, rowLayout }) {
return (
<Container rowLayout={rowLayout} >
{
config.columns.map((col, i) => (
<Column key={i} rowLayout={rowLayout}>
{
col.map((ele, j) => (
<StyledBtn rowLayout={rowLayout} key={j} w={config.w} h={config.h} rowgap={config.rowGap} bg={ele.bg} to={ele.to} />
))
}
</Column>
))
}
</Container>
);
}
\ No newline at end of file
import React from 'react';
import styled from 'styled-components';
import BackGround from '../components/BackGround';
import CornImg from '../仿真软件-植物营养元素缺素症切图/首页/玉米.png';
import WheatImg from '../仿真软件-植物营养元素缺素症切图/首页/小麦.png';
import RapeImg from '../仿真软件-植物营养元素缺素症切图/首页/油菜花.png';
import tomatoImg from '../仿真软件-植物营养元素缺素症切图/首页/西红柿.png';
import AnimatedBtn from '../components/AnimatedBtn';
import { convertpx2vw } from '../config';
const Container = styled(BackGround)`
display: flex;
flex-direction: row;
justify-content: space-evenly;
align-items: center;
`;
const StyledBtn = styled(AnimatedBtn)`
width: ${convertpx2vw(300)};
height: ${convertpx2vw(300)};
`;
export default function Home() {
return (
<Container>
<StyledBtn bg={CornImg} to='/corn' />
<StyledBtn bg={WheatImg} to='/wheat' />
<StyledBtn bg={RapeImg} to='/rape' />
<StyledBtn bg={tomatoImg} to='/tomato' />
</Container>
);
}
\ No newline at end of file
import React from 'react';
import CheckLack from '../../layouts/CheckLack';
import { withRouter } from 'react-router-dom';
import LackNBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/1.1缺氮.png'
import LackPBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/1.2缺磷.png'
import LackKBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/1.3缺钾.png'
import LackZnBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/1.4缺锌.png'
import LackBBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/1.5缺鹏.png'
import LackNBtnBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/缺氮.png'
import LackBBtnBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/缺硼.png'
import LackPBtnBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/缺磷.png'
import LackKBtnBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/缺钾.png'
import LackZnBtnBg from '../../仿真软件-植物营养元素缺素症切图/1玉米/缺锌.png'
const bgs = [
LackNBg, LackPBg, LackKBg, LackZnBg, LackBBg
]
export default function (idx) {
const Component = withRouter(({ match }) => {
const config = {
bg: bgs[idx],
btns: {
w: 207,
h: 207,
marginTop: 602,
topGap: 0,
leftGap: 80,
rows: [
[
{ bg: LackNBtnBg }, { bg: LackPBtnBg }, { bg: LackKBtnBg }, { bg: LackZnBtnBg }, { bg: LackBBtnBg }
],
]
}
}
config.btns.rows[0][idx].to = match.url+'/info';
return <CheckLack config={config} />;
});
return Component;
}
import React from 'react';
import LackOfNImg from '../../仿真软件-植物营养元素缺素症切图/1玉米/1.png';
import LackOfPImg from '../../仿真软件-植物营养元素缺素症切图/1玉米/2.png';
import LackOfKImg from '../../仿真软件-植物营养元素缺素症切图/1玉米/3.png';
import LackOfZnImg from '../../仿真软件-植物营养元素缺素症切图/1玉米/4.png';
import LackOfBImg from '../../仿真软件-植物营养元素缺素症切图/1玉米/5.png';
import ThreeColumnsLayout from '../../layouts/ThreeColumnsLayout';
export default function Corn({ match }) {
const config = {
w: 407,
h: 220,
rowGap: 20,
columns: [
[
{ bg: LackOfNImg, to: match.url + "/lack-of-n" },
{ bg: LackOfPImg, to: match.url + "/lack-of-p" },
],
[
{ bg: LackOfKImg, to: match.url + "/lack-of-k" },
{ bg: LackOfZnImg, to: match.url + "/lack-of-zn" },
],
[
{ bg: LackOfBImg, to: match.url + "/lack-of-b" },
],
],
}
return (
<ThreeColumnsLayout rowLayout config={config} />
);
}
\ No newline at end of file
import React from 'react';
import CheckLack from '../../layouts/CheckLack';
import { withRouter } from 'react-router-dom';
import LackMgBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/3.1缺镁.png'
import LackNBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/3.2缺氮.png'
import LackBBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/3.3缺硼.png'
import LackSBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/3.4缺硫.png'
import LackPBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/3.5缺磷.png'
import LackGaBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/3.6缺钙.png'
import LackKBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/3.7缺钾.png'
import LackZnBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/3.8缺锌.png'
import LackNBtnBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/缺氮.png'
import LackSBtnBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/缺硫.png'
import LackBBtnBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/缺硼.png'
import LackPBtnBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/缺磷.png'
import LackGaBtnBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/缺钙.png'
import LackKBtnBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/缺钾.png'
import LackZnBtnBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/缺锌.png'
import LackMgBtnBg from '../../仿真软件-植物营养元素缺素症切图/3油菜/缺镁.png'
const bgs = [
[
LackNBg, LackPBg, LackKBg, LackGaBg
],
[
LackMgBg, LackZnBg, LackBBg, LackSBg
]
]
export default function (lackElement) {
const Component = withRouter(({ match }) => {
const config = {
bg: bgs[lackElement[0]][lackElement[1]],
btns: {
w: 159,
h: 159,
marginTop: 539,
topGap: 40,
leftGap: 140,
rows: [
[
{ bg: LackNBtnBg }, { bg: LackPBtnBg }, { bg: LackKBtnBg }, { bg: LackGaBtnBg }
],
[
{ bg: LackMgBtnBg }, { bg: LackZnBtnBg }, { bg: LackBBtnBg }, { bg: LackSBtnBg }
]
]
}
}
config.btns.rows[lackElement[0]][lackElement[1]].to = match.url+'/info';
return <CheckLack config={config} />;
});
return Component;
}
import React from 'react';
import LackOfMgImg from '../../仿真软件-植物营养元素缺素症切图/3油菜/1.png';
import LackOfNImg from '../../仿真软件-植物营养元素缺素症切图/3油菜/2.png';
import LackOfBImg from '../../仿真软件-植物营养元素缺素症切图/3油菜/3.png';
import LackOfSImg from '../../仿真软件-植物营养元素缺素症切图/3油菜/4.png';
import LackOfPImg from '../../仿真软件-植物营养元素缺素症切图/3油菜/5.png';
import LackOfGaImg from '../../仿真软件-植物营养元素缺素症切图/3油菜/6.png';
import LackOfKImg from '../../仿真软件-植物营养元素缺素症切图/3油菜/7.png';
import LackOfZnImg from '../../仿真软件-植物营养元素缺素症切图/3油菜/8.png';
import ThreeColumnsLayout from '../../layouts/ThreeColumnsLayout';
export default function Rape({ match }) {
const config = {
w: 407,
h: 220,
rowGap: 20,
columns: [
[
{ bg: LackOfPImg, to: match.url + "/lack-of-p" },
{ bg: LackOfNImg, to: match.url + "/lack-of-n" },
{ bg: LackOfZnImg, to: match.url + "/lack-of-zn" },
],
[
{ bg: LackOfMgImg, to: match.url + "/lack-of-mg" },
{ bg: LackOfBImg, to: match.url + "/lack-of-b" },
],
[
{ bg: LackOfGaImg, to: match.url + "/lack-of-ga" },
{ bg: LackOfSImg, to: match.url + "/lack-of-s" },
{ bg: LackOfKImg, to: match.url + "/lack-of-k" },
],
],
}
return (
<ThreeColumnsLayout config={config} />
);
}
\ No newline at end of file
import React from 'react';
import CheckLack from '../../layouts/CheckLack';
import { withRouter } from 'react-router-dom';
import LackZnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.1缺锌.png'
import LackBBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.2缺硼.png'
import LackSBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.3缺硫.png'
import LackKBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.4缺钾.png'
import LackNBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.5缺氮.png'
import LackGaBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.6缺钙.png'
import LackPBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.7缺磷.png'
import LackMgBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.8缺镁.png'
import LackMuBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.9缺钼.png'
import LackZnBtnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/缺锌.png'
import LackBBtnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/缺硼.png'
import LackSBtnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/缺硫.png'
import LackKBtnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/缺钾.png'
import LackNBtnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/缺氮.png'
import LackGaBtnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/缺钙.png'
import LackPBtnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/缺磷.png'
import LackMgBtnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/缺镁.png'
import LackMuBtnBg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/缺钼.png'
const bgs = [
LackNBg, LackPBg, LackKBg, LackGaBg, LackMgBg, LackZnBg, LackBBg, LackSBg, LackMuBg,
];
export default function(idx) {
const Component = withRouter(({ match }) => {
const config = {
bg: bgs[idx],
btns: {
w: 121,
h: 286,
marginTop: 559,
topGap: 0,
leftGap: 48,
rows: [
[
{ bg: LackNBtnBg }, { bg: LackPBtnBg }, { bg: LackKBtnBg }, { bg: LackGaBtnBg }, { bg: LackMgBtnBg }, { bg: LackZnBtnBg }, { bg: LackBBtnBg }, { bg: LackSBtnBg }, { bg: LackMuBtnBg },
],
]
}
}
config.btns.rows[0][idx].to = match.url+'/info';
return <CheckLack config={config} />;
});
return Component;
}
import React from 'react';
import LackOfZnImg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/1.png';
import LackOfBImg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/2.png';
import LackOfSImg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/3.png';
import LackOfKImg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/4.png';
import LackOfNImg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/5.png';
import LackOfGaImg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/6.png';
import LackOfPImg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/7.png';
import LackOfMgImg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/8.png';
import LackOfMuImg from '../../仿真软件-植物营养元素缺素症切图/4西红柿/9.png';
import ThreeColumnsLayout from '../../layouts/ThreeColumnsLayout';
export default function Tomato({ match }) {
const config = {
w: 370,
h: 198,
rowGap: 70,
columns: [
[
{ bg: LackOfZnImg, to: match.url + "/lack-of-zn" },
{ bg: LackOfKImg, to: match.url + "/lack-of-k" },
{ bg: LackOfPImg, to: match.url + "/lack-of-p" },
],
[
{ bg: LackOfBImg, to: match.url + "/lack-of-b" },
{ bg: LackOfNImg, to: match.url + "/lack-of-n" },
{ bg: LackOfMgImg, to: match.url + "/lack-of-mg" },
],
[
{ bg: LackOfSImg, to: match.url + "/lack-of-s" },
{ bg: LackOfGaImg, to: match.url + "/lack-of-ga" },
{ bg: LackOfMuImg, to: match.url + "/lack-of-mu" },
],
],
}
return (
<ThreeColumnsLayout config={config} />
);
}
import React from 'react';
import CheckLack from '../../layouts/CheckLack';
import { withRouter } from 'react-router-dom';
import N_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.1缺氮.png'
import P_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.2缺磷.png'
import K_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.3缺钾.png'
import Zn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.4缺锌.png'
import B_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.5缺硼.png'
import Mn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.6缺锰.png'
import Fe_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.7缺铁.png'
import Mg_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.8缺镁.png'
import Ga_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.9缺钙.png'
import N_Btn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/缺氮.png';
import B_Btn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/缺硼.png';
import P_Btn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/缺磷.png';
import Ga_Btn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/缺钙.png';
import K_Btn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/缺钾.png';
import Fe_Btn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/缺铁.png';
import Zn_Btn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/缺锌.png';
import Mn_Btn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/缺锰.png';
import Mg_Btn_Bg from '../../仿真软件-植物营养元素缺素症切图/2小麦/缺镁.png';
const bgs = [ N_Bg, P_Bg, K_Bg, Ga_Bg, Mg_Bg, Zn_Bg, B_Bg, Mn_Bg, Fe_Bg, ]
export default function (idx) {
const Component = withRouter(({ match }) => {
const config = {
bg: bgs[idx],
btns: {
w: 121,
h: 286,
marginTop: 560,
topGap: 0,
leftGap: 48,
rows: [
[
{ bg: N_Btn_Bg }, { bg: P_Btn_Bg }, { bg: K_Btn_Bg }, { bg: Ga_Btn_Bg }, { bg: Mg_Btn_Bg }, { bg: Zn_Btn_Bg }, { bg: B_Btn_Bg }, { bg: Mn_Btn_Bg }, { bg: Fe_Btn_Bg },
],
]
}
}
config.btns.rows[0][idx].to = match.url+'/info';
return <CheckLack config={config} />;
});
return Component;
}
import React from 'react';
import LackOfNImg from '../../仿真软件-植物营养元素缺素症切图/2小麦/1.png';
import LackOfPImg from '../../仿真软件-植物营养元素缺素症切图/2小麦/2.png';
import LackOfKImg from '../../仿真软件-植物营养元素缺素症切图/2小麦/3.png';
import LackOfZnImg from '../../仿真软件-植物营养元素缺素症切图/2小麦/4.png';
import LackOfBImg from '../../仿真软件-植物营养元素缺素症切图/2小麦/5.png';
import LackOfMnImg from '../../仿真软件-植物营养元素缺素症切图/2小麦/6.png';
import LackOfFeImg from '../../仿真软件-植物营养元素缺素症切图/2小麦/7.png';
import LackOfMgImg from '../../仿真软件-植物营养元素缺素症切图/2小麦/8.png';
import LackOfGaImg from '../../仿真软件-植物营养元素缺素症切图/2小麦/9.png';
import ThreeColumnsLayout from '../../layouts/ThreeColumnsLayout';
export default function Wheat({ match }) {
const config = {
w: 448,
h: 216,
rowGap: 20,
columns: [
[
{ bg: LackOfNImg, to: match.url + "/lack-of-n" },
{ bg: LackOfZnImg, to: match.url + "/lack-of-zn" },
{ bg: LackOfFeImg, to: match.url + "/lack-of-fe" },
],
[
{ bg: LackOfPImg, to: match.url + "/lack-of-p" },
{ bg: LackOfBImg, to: match.url + "/lack-of-b" },
{ bg: LackOfMgImg, to: match.url + "/lack-of-mg" },
],
[
{ bg: LackOfKImg, to: match.url + "/lack-of-k" },
{ bg: LackOfMnImg, to: match.url + "/lack-of-mn" },
{ bg: LackOfGaImg, to: match.url + "/lack-of-ga" },
],
],
}
return (
<ThreeColumnsLayout config={config} />
);
}
......@@ -805,7 +805,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-typescript" "^7.3.2"
"@babel/runtime@7.5.5", "@babel/runtime@^7.0.0", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5":
"@babel/runtime@7.5.5", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5":
version "7.5.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132"
integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==
......@@ -896,6 +896,23 @@
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-9.0.1.tgz#c27b391d8457d1e893f1eddeaf5e5412d12ffbb5"
integrity sha512-6It2EVfGskxZCQhuykrfnALg7oVeiI6KclWSmGDqB0AiInVrTGB9Jp9i4/Ad21u9Jde/voVQz6eFX/eSg/UsPA==
"@emotion/is-prop-valid@^0.8.1":
version "0.8.2"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.2.tgz#b9692080da79041683021fcc32f96b40c54c59dc"
integrity sha512-ZQIMAA2kLUWiUeMZNJDTeCwYRx1l8SQL0kHktze4COT22occKpDML1GDUXP5/sxhOMrZO8vZw773ni4H5Snrsg==
dependencies:
"@emotion/memoize" "0.7.2"
"@emotion/memoize@0.7.2":
version "0.7.2"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.2.tgz#7f4c71b7654068dfcccad29553520f984cc66b30"
integrity sha512-hnHhwQzvPCW1QjBWFyBtsETdllOM92BfrKWbUTmh9aeOlcVOiXvlPsK4104xH8NsaKfg86PTFsWkueQeUfMA/w==
"@emotion/unitless@^0.7.0":
version "0.7.4"
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.4.tgz#a87b4b04e5ae14a88d48ebef15015f6b7d1f5677"
integrity sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ==
"@hapi/address@2.x.x":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a"
......@@ -1944,6 +1961,21 @@ babel-plugin-named-asset-import@^0.3.3:
resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.3.tgz#9ba2f3ac4dc78b042651654f07e847adfe50667c"
integrity sha512-1XDRysF4894BUdMChT+2HHbtJYiO7zx5Be7U6bT8dISy7OdyETMGIAQBMPQCsY1YRf0xcubwnKKaDr5bk15JTA==
"babel-plugin-styled-components@>= 1":
version "1.10.6"
resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.6.tgz#f8782953751115faf09a9f92431436912c34006b"
integrity sha512-gyQj/Zf1kQti66100PhrCRjI5ldjaze9O0M3emXRPAN80Zsf8+e1thpTpaXJXVHXtaM4/+dJEgZHyS9Its+8SA==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-module-imports" "^7.0.0"
babel-plugin-syntax-jsx "^6.18.0"
lodash "^4.17.11"
babel-plugin-syntax-jsx@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
babel-plugin-syntax-object-rest-spread@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
......@@ -2345,6 +2377,11 @@ camelcase@^5.2.0, camelcase@^5.3.1:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
camelize@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
caniuse-api@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
......@@ -2875,6 +2912,11 @@ css-blank-pseudo@^0.1.4:
dependencies:
postcss "^7.0.5"
css-color-keywords@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=
css-color-names@0.0.4, css-color-names@^0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
......@@ -2945,6 +2987,15 @@ css-select@^2.0.0:
domutils "^1.7.0"
nth-check "^1.0.2"
css-to-react-native@^2.2.2:
version "2.3.1"
resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.3.1.tgz#cf0f61e0514846e2d4dc188b0886e29d8bef64a2"
integrity sha512-yO+oEx1Lf+hDKasqQRVrAvzMCz825Huh1VMlEEDlRWyAhFb/FWb6I0KpEF1PkyKQ7NEdcx9d5M2ZEWgJAsgPvQ==
dependencies:
camelize "^1.0.0"
css-color-keywords "^1.0.0"
postcss-value-parser "^3.3.0"
css-tree@1.0.0-alpha.28:
version "1.0.0-alpha.28"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f"
......@@ -4479,6 +4530,11 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
gud@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==
gzip-size@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
......@@ -4607,6 +4663,18 @@ hex-color-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
history@^4.9.0:
version "4.9.0"
resolved "https://registry.yarnpkg.com/history/-/history-4.9.0.tgz#84587c2068039ead8af769e9d6a6860a14fa1bca"
integrity sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA==
dependencies:
"@babel/runtime" "^7.1.2"
loose-envify "^1.2.0"
resolve-pathname "^2.2.0"
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
value-equal "^0.4.0"
hmac-drbg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
......@@ -4616,6 +4684,13 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
hoist-non-react-statics@^3.1.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b"
integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==
dependencies:
react-is "^16.7.0"
hosted-git-info@^2.1.4:
version "2.7.1"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
......@@ -5223,6 +5298,11 @@ is-typedarray@~1.0.0:
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
is-what@^3.2.4:
version "3.3.1"
resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.3.1.tgz#79502181f40226e2d8c09226999db90ef7c1bcbe"
integrity sha512-seFn10yAXy+yJlTRO+8VfiafC+0QJanGLMPTBWLrJm/QPauuchy0UXh8B6H5o9VA8BAzk0iYievt6mNp6gfaqA==
is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
......@@ -5233,6 +5313,11 @@ is-wsl@^1.1.0:
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
......@@ -6071,7 +6156,7 @@ loglevel@^1.4.1:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
......@@ -6169,6 +6254,11 @@ mem@^4.0.0:
mimic-fn "^1.0.0"
p-is-promise "^2.0.0"
memoize-one@^5.0.0:
version "5.0.5"
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.0.5.tgz#8cd3809555723a07684afafcd6f756072ac75d7e"
integrity sha512-ey6EpYv0tEaIbM/nTDOpHciXUvd+ackQrJgEzBwemhZZIWZjcyodqEcrmqDy2BKRTM3a65kKBV4WtLXJDt26SQ==
memory-fs@^0.4.0, memory-fs@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
......@@ -6177,6 +6267,13 @@ memory-fs@^0.4.0, memory-fs@^0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
merge-anything@^2.2.4:
version "2.4.0"
resolved "https://registry.yarnpkg.com/merge-anything/-/merge-anything-2.4.0.tgz#86959caf02bb8969d1ae5e1b652862bc5fe54e44"
integrity sha512-MhJcPOEcDUIbwU0LnEfx5S9s9dfQ/KPu4g2UA5T5G1LRKS0XmpDvJ9+UUfTkfhge+nA1gStE4tJAvx6lXLs+rg==
dependencies:
is-what "^3.2.4"
merge-deep@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2"
......@@ -6272,6 +6369,15 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
mini-create-react-context@^0.3.0:
version "0.3.2"
resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz#79fc598f283dd623da8e088b05db8cddab250189"
integrity sha512-2v+OeetEyliMt5VHMXsBhABoJ0/M4RCe7fatd/fBy6SMiKazUSEt3gxxypfnk2SHMkdBYvorHRoQxuGoiwbzAw==
dependencies:
"@babel/runtime" "^7.4.0"
gud "^1.0.0"
tiny-warning "^1.0.2"
mini-css-extract-plugin@0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0"
......@@ -7069,6 +7175,13 @@ path-to-regexp@0.1.7:
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
path-to-regexp@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=
dependencies:
isarray "0.0.1"
path-type@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
......@@ -7915,7 +8028,7 @@ prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.3"
prop-types@^15.6.2, prop-types@^15.7.2:
prop-types@^15.5.4, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
......@@ -8114,7 +8227,7 @@ react-dev-utils@^9.0.3:
strip-ansi "5.2.0"
text-table "0.2.0"
react-dom@16.9.0:
react-dom@^16.9.0:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962"
integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==
......@@ -8129,15 +8242,44 @@ react-error-overlay@^6.0.1:
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.1.tgz#b8d3cf9bb991c02883225c48044cb3ee20413e0f"
integrity sha512-V9yoTr6MeZXPPd4nV/05eCBvGH9cGzc52FN8fs0O0TVQ3HYYf1n7EgZVtHbldRq5xU9zEzoXIITjYNIfxDDdUw==
react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.4:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb"
integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==
react-is@^16.8.1:
version "16.8.4"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.4.tgz#90f336a68c3a29a096a3d648ab80e87ec61482a2"
integrity sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA==
react-is@^16.8.4:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb"
integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==
react-router-dom@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.0.1.tgz#ee66f4a5d18b6089c361958e443489d6bab714be"
integrity sha512-zaVHSy7NN0G91/Bz9GD4owex5+eop+KvgbxXsP/O+iW1/Ln+BrJ8QiIR5a6xNPtrdTvLkxqlDClx13QO1uB8CA==
dependencies:
"@babel/runtime" "^7.1.2"
history "^4.9.0"
loose-envify "^1.3.1"
prop-types "^15.6.2"
react-router "5.0.1"
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
react-router@5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.0.1.tgz#04ee77df1d1ab6cb8939f9f01ad5702dbadb8b0f"
integrity sha512-EM7suCPNKb1NxcTZ2LEOWFtQBQRQXecLxVpdsP4DW4PbbqYWeRiLyV/Tt1SdCrvT2jcyXAXmVTmzvSzrPR63Bg==
dependencies:
"@babel/runtime" "^7.1.2"
history "^4.9.0"
hoist-non-react-statics "^3.1.0"
loose-envify "^1.3.1"
mini-create-react-context "^0.3.0"
path-to-regexp "^1.7.0"
prop-types "^15.6.2"
react-is "^16.6.0"
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
react-scripts@3.1.1:
version "3.1.1"
......@@ -8200,7 +8342,7 @@ react-scripts@3.1.1:
optionalDependencies:
fsevents "2.0.7"
react@16.9.0:
react@^16.9.0:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa"
integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==
......@@ -8479,6 +8621,11 @@ resolve-from@^4.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
resolve-pathname@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879"
integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==
resolve-url-loader@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.0.tgz#54d8181d33cd1b66a59544d05cadf8e4aa7d37cc"
......@@ -9263,6 +9410,25 @@ style-loader@1.0.0:
loader-utils "^1.2.3"
schema-utils "^2.0.1"
styled-components@^4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-4.3.2.tgz#4ca81918c812d3006f60ac5fdec7d6b64a9509cc"
integrity sha512-NppHzIFavZ3TsIU3R1omtddJ0Bv1+j50AKh3ZWyXHuFvJq1I8qkQ5mZ7uQgD89Y8zJNx2qRo6RqAH1BmoVafHw==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/traverse" "^7.0.0"
"@emotion/is-prop-valid" "^0.8.1"
"@emotion/unitless" "^0.7.0"
babel-plugin-styled-components ">= 1"
css-to-react-native "^2.2.2"
memoize-one "^5.0.0"
merge-anything "^2.2.4"
prop-types "^15.5.4"
react-is "^16.6.0"
stylis "^3.5.0"
stylis-rule-sheet "^0.0.10"
supports-color "^5.5.0"
stylehacks@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
......@@ -9272,12 +9438,22 @@ stylehacks@^4.0.0:
postcss "^7.0.0"
postcss-selector-parser "^3.0.0"
stylis-rule-sheet@^0.0.10:
version "0.0.10"
resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430"
integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==
stylis@^3.5.0:
version "3.5.4"
resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe"
integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
supports-color@^5.3.0:
supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
......@@ -9447,6 +9623,16 @@ timsort@^0.3.0:
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
tiny-invariant@^1.0.2:
version "1.0.6"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73"
integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==
tiny-warning@^1.0.0, tiny-warning@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
......@@ -9791,6 +9977,11 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
value-equal@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7"
integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论