fix: Remove useless component && update path && update image
1. Remove useless component: NotFound, EmptyTable 2. Update asset path according to alias in webpack 3. Update page path according to alias in webpack 4. Remove useless image 5. Update image name Change-Id: I0c8fc48733d0a0f9df80e8cc37db63fdebaa166b
@ -1 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#333333" d="M504.149333 7.850667c-44.373333 108.544-70.997333 179.2-120.149333 284.330666 30.037333 32.085333 67.242667 69.290667 127.317333 111.274667-64.512-26.624-108.544-53.248-141.653333-80.896-63.146667 131.413333-161.792 318.464-361.813333 678.229333 157.696-90.794667 279.552-146.773333 393.216-168.277333-4.778667-21.162667-7.509333-43.690667-7.509334-67.584l0.341334-5.12c2.389333-100.693333 54.954667-178.517333 117.077333-173.056s110.592 91.477333 107.861333 192.170667c-0.341333 18.090667-2.389333 36.522667-6.485333 54.272 112.64 21.845333 233.130667 77.824 388.437333 167.594666l-83.968-155.648c-40.96-31.744-83.968-73.386667-171.349333-118.101333 60.074667 15.701333 103.082667 33.792 136.533333 53.930667-265.557333-493.909333-287.061333-559.786667-377.856-773.12z" /></svg>
|
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
@ -1 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M512 971.487179C258.231795 971.487179 52.512821 765.768205 52.512821 512S258.231795 52.512821 512 52.512821 971.487179 258.231795 971.487179 512 765.768205 971.487179 512 971.487179z m0-65.641025c217.508103 0 393.846154-176.338051 393.846154-393.846154 0-217.508103-176.338051-393.846154-393.846154-393.846154-217.508103 0-393.846154 176.338051-393.846154 393.846154 0 217.508103 176.338051 393.846154 393.846154 393.846154z m-4.883692-237.384205c13.67959 0 25.416205 3.754667 34.553436 12.524307 9.137231 8.165744 13.67959 18.852103 13.679589 32.006565 0 13.154462-5.198769 23.814564-14.336 32.610461a50.044718 50.044718 0 0 1-33.897025 12.550564 47.786667 47.786667 0 0 1-33.897026-13.154461 42.719179 42.719179 0 0 1-13.705846-32.006564c0-13.154462 4.568615-23.840821 13.67959-32.006565 9.137231-8.769641 20.900103-12.524308 33.923282-12.524307zM507.405128 262.564103c26.466462 0 47.917949 21.451487 47.917949 47.917948v271.753846a47.917949 47.917949 0 1 1-95.835898 0v-271.753846c0-26.466462 21.451487-47.917949 47.917949-47.917948z" fill="#D93126" /></svg>
|
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 224 KiB After Width: | Height: | Size: 224 KiB |
Before Width: | Height: | Size: 354 KiB |
@ -1 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="199.61px" viewBox="0 0 1026 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M488.747 440.747c0-19.2 13.44-35.093 29.867-35.093 16.533 0 29.867 13.973 29.867 33.173v190.72c0 19.2-13.44 32.213-29.867 32.213-16.533 0-29.867-12.8-29.867-31.893v-189.12zM519.147 763.093c-18.24 0-32.96-15.040-32.96-33.707 0-18.56 14.72-33.707 32.96-33.707 18.24 0 32.96 15.040 32.96 33.707s-14.72 33.707-32.96 33.707z" fill="#FAAD14" /><path d="M572.621 175.582c22.391 37.683 355.533 598.016 372.463 626.961 15.292 25.668 15.292 50.244 7.1 66.082-9.284 17.476-31.676 22.938-56.252 22.938h-756.941c-30.037 0-52.429-8.192-58.982-21.299-8.192-17.476-6.554-40.414 12.015-71.543 20.207-33.86 351.164-602.385 362.086-619.861 16.384-27.853 39.868-46.421 61.713-46.421 21.845 0 43.691 21.845 56.798 43.145zM501.623 235.11c-12.561 21.299-322.219 547.226-338.057 572.894-7.1 12.015-8.738 19.115 7.1 19.115h688.674c15.292 0 16.93-8.738 10.377-19.661-26.761-44.237-329.318-552.687-342.426-573.44-12.561-20.753-13.107-20.207-25.668 1.092z" fill="#FAAD14" /></svg>
|
Before Width: | Height: | Size: 1.2 KiB |
@ -1 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M867.3 882.3h-64V465c0-77.5-30.4-150.5-85.6-205.7-55.2-55.2-128.3-85.6-205.7-85.6s-150.5 30.4-205.7 85.6c-55.2 55.2-85.6 128.3-85.6 205.7v417.3h-64V465c0-47.8 9.4-94.2 28.1-138 18-42.3 43.6-80.3 76.3-112.9 32.7-32.7 70.7-58.3 112.9-76.3 43.8-18.6 90.3-28.1 138-28.1 47.8 0 94.2 9.4 138 28.1 42.3 18 80.3 43.6 112.9 76.3 32.7 32.7 58.3 70.7 76.3 112.9 18.6 43.8 28.1 90.3 28.1 138v417.3z" fill="#5E8EFD" /><path d="M923.2 886.2H100.8c-17.7 0-32-14.3-32-32s14.3-32 32-32h822.4c17.7 0 32 14.3 32 32s-14.3 32-32 32zM512 625.5c-17.7 0-32-14.3-32-32V330.7c0-17.7 14.3-32 32-32s32 14.3 32 32v262.8c0 17.6-14.3 32-32 32z m0 99.2c-17.7 0-32-14.3-32-32V688c0-17.7 14.3-32 32-32s32 14.3 32 32v4.7c0 17.7-14.3 32-32 32z" fill="#5E8EFD" /></svg>
|
Before Width: | Height: | Size: 999 B |
@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="123px" height="80px" viewBox="0 0 123 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none">
|
||||
<!-- Generator: Sketch 57.1 (83088) - https://sketch.com -->
|
||||
<title>编组 10</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="存储卷/存储卷" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="编组-10">
|
||||
<g id="编组-8">
|
||||
<path d="M122.076923,0 C122.629208,-1.01453063e-16 123.076923,0.44771525 123.076923,1 L123.076923,79 C123.076923,79.5522847 122.629208,80 122.076923,80 L1,80 C0.44771525,80 -1.13619202e-13,79.5522847 -1.13686838e-13,79 L-1.13686838e-13,1 C-1.13754473e-13,0.44771525 0.44771525,1.01453063e-16 1,0 L122.076923,0 Z M109.988666,3.07692308 L65.1817201,3.07692308 L65.1761551,3.76383749 C64.8093377,26.3880702 46.3549068,44.6153846 23.6432585,44.6153846 L23.6432585,44.6153846 L3.07826862,44.6153846 L3.07640006,70.4076633 C3.89317171,69.6758377 4.97220605,69.2307692 6.1551917,69.2307692 C8.70419824,69.2307692 10.7705763,71.2971473 10.7705763,73.8461538 C10.7705763,75.028801 10.3257625,76.1075564 9.59431033,76.9242443 L9.59431033,76.9242443 L109.988666,76.9230769 L109.988666,3.07692308 Z" id="形状结合" fill="#242E42" fill-rule="nonzero"></path>
|
||||
<circle id="椭圆形备份" fill="#4A5974" cx="116.923077" cy="6.15384615" r="3.07692308"></circle>
|
||||
<circle id="椭圆形备份-2" fill="#4A5974" cx="116.923077" cy="73.8461538" r="3.07692308"></circle>
|
||||
<circle id="椭圆形备份-3" fill="#4A5974" cx="6.15384615" cy="73.8461538" r="3.07692308"></circle>
|
||||
<g id="编组-5" transform="translate(113.846154, 20.000000)" fill-rule="nonzero">
|
||||
<polygon id="矩形" fill="#C1C9D1" points="0 0 9.23076923 0 9.23076923 36.9230769 0 28.021823"></polygon>
|
||||
<rect id="矩形" fill="#36435C" x="3.07692308" y="4.61538462" width="6.15384615" height="3.07692308"></rect>
|
||||
<rect id="矩形备份-8" fill="#36435C" x="3.07692308" y="10.7692308" width="6.15384615" height="3.07692308"></rect>
|
||||
<rect id="矩形备份-9" fill="#36435C" x="3.07692308" y="16.9230769" width="6.15384615" height="3.07692308"></rect>
|
||||
<rect id="矩形备份-10" fill="#36435C" x="3.07692308" y="23.0769231" width="6.15384615" height="3.07692308"></rect>
|
||||
</g>
|
||||
<g id="编组-7" transform="translate(3.076923, 3.076923)" fill-rule="nonzero">
|
||||
<path d="M0,0 L58.4615385,0 C58.4615385,21.2417211 41.2417211,38.4615385 20,38.4615385 L0,38.4615385 L0,38.4615385 L0,0 Z" id="矩形" fill="#C1C9D1"></path>
|
||||
<rect id="矩形" fill="#36435C" x="3.07692308" y="4.61538462" width="6.15384615" height="3.07692308"></rect>
|
||||
<rect id="矩形备份-2" fill="#36435C" x="3.07692308" y="10.7692308" width="6.15384615" height="3.07692308"></rect>
|
||||
<rect id="矩形备份-4" fill="#36435C" x="3.07692308" y="16.9230769" width="6.15384615" height="3.07692308"></rect>
|
||||
<rect id="矩形备份-6" fill="#36435C" x="3.07692308" y="23.0769231" width="6.15384615" height="3.07692308"></rect>
|
||||
<rect id="矩形备份" fill="#36435C" x="12.3076923" y="4.61538462" width="27.6923077" height="3.07692308"></rect>
|
||||
<rect id="矩形备份-3" fill="#36435C" x="12.3076923" y="10.7692308" width="27.6923077" height="3.07692308"></rect>
|
||||
<rect id="矩形备份-5" fill="#36435C" x="12.3076923" y="16.9230769" width="27.6923077" height="3.07692308"></rect>
|
||||
<rect id="矩形备份-7" fill="#36435C" x="12.3076923" y="23.0769231" width="27.6923077" height="3.07692308"></rect>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.9 KiB |
@ -1,69 +0,0 @@
|
||||
// Copyright 2021 99cloud
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import classnames from 'classnames';
|
||||
|
||||
import { Row, Col, Button } from 'antd';
|
||||
|
||||
import styles from './index.less';
|
||||
|
||||
export default class EmptyList extends React.Component {
|
||||
static propTypes = {
|
||||
className: PropTypes.string,
|
||||
name: PropTypes.string,
|
||||
desc: PropTypes.string,
|
||||
createText: PropTypes.string,
|
||||
operations: PropTypes.oneOfType([PropTypes.node, PropTypes.element]),
|
||||
onCreate: PropTypes.func,
|
||||
};
|
||||
|
||||
static defaultProps = {
|
||||
name: '',
|
||||
};
|
||||
|
||||
render() {
|
||||
const { className, name, operations, onCreate, createText } = this.props;
|
||||
const desc =
|
||||
this.props.desc ||
|
||||
t(`${name.split(' ').join('_').toUpperCase()}_CREATE_DESC`);
|
||||
|
||||
const btnText = createText || `${t('Create ')}${t(name)}`;
|
||||
|
||||
return (
|
||||
<div className={classnames(styles.wrapper, className)}>
|
||||
<Row>
|
||||
<Col className="is-narrow">
|
||||
<img src="/asset/image/empty-card.svg" alt="" />
|
||||
</Col>
|
||||
<Col>
|
||||
<p
|
||||
className={styles.desc}
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: desc,
|
||||
}}
|
||||
/>
|
||||
{operations ||
|
||||
(onCreate && (
|
||||
<Button type="control" onClick={onCreate}>
|
||||
{btnText}
|
||||
</Button>
|
||||
))}
|
||||
</Col>
|
||||
</Row>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
@import '~styles/variables';
|
||||
|
||||
.wrapper {
|
||||
padding: 38px 72px;
|
||||
border-radius: @border-radius;
|
||||
background-color: #ffffff;
|
||||
box-shadow: @base-shadow;
|
||||
|
||||
img {
|
||||
margin-right: 70px;
|
||||
}
|
||||
}
|
||||
|
||||
.desc {
|
||||
max-width: 580px;
|
||||
margin-bottom: 20px;
|
||||
font-family: @font-family-id;
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
// Copyright 2021 99cloud
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import classnames from 'classnames';
|
||||
|
||||
import styles from './index.less';
|
||||
|
||||
export default class Empty extends React.PureComponent {
|
||||
static propTypes = {
|
||||
className: PropTypes.string,
|
||||
img: PropTypes.string,
|
||||
desc: PropTypes.string,
|
||||
};
|
||||
|
||||
static defaultProps = {
|
||||
img: '/asset/image/empty-card.svg',
|
||||
desc: 'No relevant data',
|
||||
};
|
||||
|
||||
render() {
|
||||
const { className, img, desc } = this.props;
|
||||
|
||||
return (
|
||||
<div className={classnames(styles.wrapper, className)}>
|
||||
<img src={img} alt="No data" />
|
||||
{desc && <div className={styles.content}>{t(desc)}</div>}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
@import '~styles/variables';
|
||||
|
||||
.wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 40px 0;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin-top: 30px;
|
||||
}
|
@ -14,7 +14,9 @@
|
||||
|
||||
import React, { Component } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import imageSvg from 'src/asset/image/image.svg';
|
||||
import imageSvg from 'asset/image/image.svg';
|
||||
import securityImg from 'asset/image/security-group.svg';
|
||||
import lbImg from 'asset/image/load-balancer.png';
|
||||
|
||||
import {
|
||||
DesktopOutlined,
|
||||
@ -39,6 +41,12 @@ const ImageIcon = (
|
||||
<img src={imageSvg} alt="image_icon" style={{ width: '12px' }} />
|
||||
);
|
||||
|
||||
const SecurityIcon = (
|
||||
<img src={securityImg} alt="security_icon" style={{ width: '12px' }} />
|
||||
);
|
||||
|
||||
const LBIcon = <img src={lbImg} alt="lb_icon" style={{ width: '12px' }} />;
|
||||
|
||||
const iconTypeMap = {
|
||||
instance: <DesktopOutlined />,
|
||||
router: <BorderOuterOutlined />,
|
||||
@ -56,6 +64,8 @@ const iconTypeMap = {
|
||||
metadata: <TagOutlined />,
|
||||
flavor: <HddOutlined />,
|
||||
host: <CloudServerOutlined />,
|
||||
security: SecurityIcon,
|
||||
lb: LBIcon,
|
||||
};
|
||||
|
||||
export default class index extends Component {
|
||||
|
@ -15,15 +15,15 @@
|
||||
import React, { Component } from 'react';
|
||||
import classnames from 'classnames';
|
||||
import PropTypes from 'prop-types';
|
||||
import centosIcon from 'src/asset/image/centos.svg';
|
||||
import ubuntuIcon from 'src/asset/image/ubuntu.svg';
|
||||
import fedoraIcon from 'src/asset/image/fedora.svg';
|
||||
import windowsIcon from 'src/asset/image/windows.svg';
|
||||
import debianIcon from 'src/asset/image/debian.svg';
|
||||
import coreosIcon from 'src/asset/image/coreos.svg';
|
||||
import archIcon from 'src/asset/image/arch.svg';
|
||||
import freebsdIcon from 'src/asset/image/freebsd.svg';
|
||||
import othersIcon from 'src/asset/image/others.svg';
|
||||
import centosIcon from 'asset/image/centos.svg';
|
||||
import ubuntuIcon from 'asset/image/ubuntu.svg';
|
||||
import fedoraIcon from 'asset/image/fedora.svg';
|
||||
import windowsIcon from 'asset/image/windows.svg';
|
||||
import debianIcon from 'asset/image/debian.svg';
|
||||
import coreosIcon from 'asset/image/coreos.svg';
|
||||
import archIcon from 'asset/image/arch.svg';
|
||||
import freebsdIcon from 'asset/image/freebsd.svg';
|
||||
import othersIcon from 'asset/image/others.svg';
|
||||
import { Tooltip } from 'antd';
|
||||
import styles from './index.less';
|
||||
|
||||
|
@ -1,70 +0,0 @@
|
||||
// Copyright 2021 99cloud
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import React from 'react';
|
||||
import styles from './index.less';
|
||||
|
||||
export default class NotFound extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
time: 10,
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.interval = setInterval(() => {
|
||||
this.setState(({ time }) => ({
|
||||
time: Math.max(time - 1, 0),
|
||||
}));
|
||||
}, 1100);
|
||||
}
|
||||
|
||||
UNSAFE_componentWillUpdate(nextProps, nextState) {
|
||||
if (nextState.time === 0) {
|
||||
if (this.interval) {
|
||||
clearInterval(this.interval);
|
||||
}
|
||||
|
||||
window.location.href = '/';
|
||||
}
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
if (this.interval) {
|
||||
clearInterval(this.interval);
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className={styles.wrapper}>
|
||||
<img
|
||||
className={styles.image}
|
||||
src="/asset/image/empty-card.svg"
|
||||
alt=""
|
||||
/>
|
||||
<div className={styles.text}>
|
||||
<div className="h1">Not Found</div>
|
||||
<p>
|
||||
{t.html('NOT_FOUND_DESC', {
|
||||
time: this.state.time,
|
||||
link: '/',
|
||||
})}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
@import '~styles/variables';
|
||||
|
||||
.wrapper {
|
||||
margin-top: 132px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.image {
|
||||
height: 200px;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.text {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
width: 600px;
|
||||
margin-left: 60px;
|
||||
|
||||
:global .h1 {
|
||||
opacity: 0.4;
|
||||
font-size: 120px;
|
||||
line-height: 168px;
|
||||
color: #abb4be;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
p {
|
||||
text-shadow: 0 4px 8px rgba(36, 46, 66, 0.1);
|
||||
font-size: 20px;
|
||||
font-weight: @font-bold;
|
||||
line-height: 1.4;
|
||||
color: @text-color;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #329dce;
|
||||
}
|
||||
}
|
@ -17,11 +17,11 @@ import E404 from 'pages/base/containers/404';
|
||||
import { lazy } from 'react';
|
||||
|
||||
const Auth = lazy(() =>
|
||||
import(/* webpackChunkName: "auth" */ '@/pages/auth/App')
|
||||
import(/* webpackChunkName: "auth" */ 'pages/auth/App')
|
||||
);
|
||||
|
||||
const Basic = lazy(() =>
|
||||
import(/* webpackChunkName: "basic" */ '@/pages/basic/App')
|
||||
import(/* webpackChunkName: "basic" */ 'pages/basic/App')
|
||||
);
|
||||
|
||||
export default [
|
||||
|
@ -17,12 +17,10 @@ import { inject, observer } from 'mobx-react';
|
||||
import renderRoutes from 'utils/RouterConfig';
|
||||
import SelectLang from 'components/SelectLang';
|
||||
|
||||
import logo from 'src/asset/image/logo.png';
|
||||
// import loginImage from 'src/asset/image/login.png';
|
||||
import loginFullImage from 'src/asset/image/loginFull.png';
|
||||
import loginRightLogo from 'src/asset/image/loginRightLogo.png';
|
||||
import logo from 'asset/image/logo.png';
|
||||
import loginFullImage from 'asset/image/login-full.png';
|
||||
import loginRightLogo from 'asset/image/loginRightLogo.png';
|
||||
import styles from './index.less';
|
||||
// import bgcImg from 'src/asset/image/animnbus.png';
|
||||
|
||||
@inject('rootStore')
|
||||
@observer
|
||||
@ -36,11 +34,7 @@ class AuthLayout extends Component {
|
||||
render() {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<div
|
||||
className={styles.left}
|
||||
// TODO wait for RGB
|
||||
// style={ { backgroundImage: `url(${bgcImg})` } }
|
||||
>
|
||||
<div className={styles.left}>
|
||||
<div className={styles.lang}>
|
||||
<SelectLang />
|
||||
</div>
|
||||
@ -54,7 +48,6 @@ class AuthLayout extends Component {
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.right}>
|
||||
{/* <img alt="" className={styles['login-image']} src={loginImage} /> */}
|
||||
<img
|
||||
alt=""
|
||||
className={styles['login-full-image']}
|
||||
|
@ -19,8 +19,8 @@ import { Link } from 'react-router-dom';
|
||||
import { inject, observer } from 'mobx-react';
|
||||
import { toJS } from 'mobx';
|
||||
import classnames from 'classnames';
|
||||
import logoSmall from 'src/asset/image/logo-small.svg';
|
||||
import logoExtend from 'src/asset/image/logo-extend.svg';
|
||||
import logoSmall from 'asset/image/logo-small.svg';
|
||||
import logoExtend from 'asset/image/logo-extend.svg';
|
||||
import styles from './index.less';
|
||||
|
||||
const { SubMenu } = Menu;
|
||||
|
@ -16,9 +16,6 @@ import { Component } from 'react';
|
||||
import { inject, observer } from 'mobx-react';
|
||||
import renderRoutes from 'utils/RouterConfig';
|
||||
|
||||
// import loginImage from 'src/asset/image/login.png';
|
||||
// import bgcImg from 'src/asset/image/animnbus.png';
|
||||
|
||||
@inject('rootStore')
|
||||
@observer
|
||||
class BaseLayout extends Component {
|
||||
|
@ -16,13 +16,13 @@ import React, { Component } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { Badge, Row, Col, Card, Descriptions } from 'antd';
|
||||
import { inject, observer } from 'mobx-react';
|
||||
import adminInstance from 'src/asset/image/adminInstance.svg';
|
||||
import adminVolume from 'src/asset/image/adminVolume.svg';
|
||||
import adminInstance from 'asset/image/admin-instance.svg';
|
||||
import adminVolume from 'asset/image/admin-volume.svg';
|
||||
import { Link } from 'react-router-dom';
|
||||
import adminNetwork from 'src/asset/image/adminNetwork.svg';
|
||||
import adminImage from 'src/asset/image/adminImage.svg';
|
||||
import adminSecurityGroup from 'src/asset/image/adminSecurityGroup.svg';
|
||||
import adminRouter from 'src/asset/image/adminRouter.svg';
|
||||
import adminNetwork from 'asset/image/admin-network.svg';
|
||||
import adminImage from 'asset/image/admin-image.svg';
|
||||
import adminSecurityGroup from 'asset/image/admin-security-group.svg';
|
||||
import adminRouter from 'asset/image/admin-router.svg';
|
||||
import styles from '../style.less';
|
||||
|
||||
const card = [
|
||||
|
@ -16,10 +16,10 @@ import React, { Component } from 'react';
|
||||
// import { PropTypes } from 'prop-types';
|
||||
import { observer } from 'mobx-react';
|
||||
import { Row, Col } from 'antd';
|
||||
import overviewInstance from 'src/asset/image/overview-instance.svg';
|
||||
import overviewNetwork from 'src/asset/image/overview-network.svg';
|
||||
import overviewRouter from 'src/asset/image/overview-router.svg';
|
||||
import overviewVolume from 'src/asset/image/overview-volume.svg';
|
||||
import overviewInstance from 'asset/image/overview-instance.svg';
|
||||
import overviewNetwork from 'asset/image/overview-network.svg';
|
||||
import overviewRouter from 'asset/image/overview-router.svg';
|
||||
import overviewVolume from 'asset/image/overview-volume.svg';
|
||||
import { Link } from 'react-router-dom';
|
||||
import styles from './style.less';
|
||||
import QuotaOverview from './components/QuotaOverview';
|
||||
|
@ -15,34 +15,34 @@ import { lazy } from 'react';
|
||||
import BaseLayout from 'layouts/Base';
|
||||
|
||||
const Base = lazy(() =>
|
||||
import(/* webpackChunkName: "base" */ '@/pages/base/App')
|
||||
import(/* webpackChunkName: "base" */ 'pages/base/App')
|
||||
);
|
||||
const Compute = lazy(() =>
|
||||
import(/* webpackChunkName: "compute" */ '@/pages/compute/App')
|
||||
import(/* webpackChunkName: "compute" */ 'pages/compute/App')
|
||||
);
|
||||
const Storage = lazy(() =>
|
||||
import(/* webpackChunkName: "storage" */ '@/pages/storage/App')
|
||||
import(/* webpackChunkName: "storage" */ 'pages/storage/App')
|
||||
);
|
||||
const Network = lazy(() =>
|
||||
import(/* webpackChunkName: "network" */ '@/pages/network/App')
|
||||
import(/* webpackChunkName: "network" */ 'pages/network/App')
|
||||
);
|
||||
const Identity = lazy(() =>
|
||||
import(/* webpackChunkName: "identity" */ '@/pages/identity/App')
|
||||
import(/* webpackChunkName: "identity" */ 'pages/identity/App')
|
||||
);
|
||||
const Configs = lazy(() =>
|
||||
import(/* webpackChunkName: "configuration" */ '@/pages/configuration/App')
|
||||
import(/* webpackChunkName: "configuration" */ 'pages/configuration/App')
|
||||
);
|
||||
const Management = lazy(() =>
|
||||
import(/* webpackChunkName: "management" */ '@/pages/management/App')
|
||||
import(/* webpackChunkName: "management" */ 'pages/management/App')
|
||||
);
|
||||
const Heat = lazy(() =>
|
||||
import(/* webpackChunkName: "heat" */ '@/pages/heat/App')
|
||||
import(/* webpackChunkName: "heat" */ 'pages/heat/App')
|
||||
);
|
||||
const UserCenter = lazy(() =>
|
||||
import(/* webpackChunkName: "user-center" */ '@/pages/user-center/App')
|
||||
import(/* webpackChunkName: "user-center" */ 'pages/user-center/App')
|
||||
);
|
||||
const E404 = lazy(() =>
|
||||
import(/* webpackChunkName: "E404" */ '@/pages/base/containers/404')
|
||||
import(/* webpackChunkName: "E404" */ 'pages/base/containers/404')
|
||||
);
|
||||
const PATH = '/';
|
||||
|
||||
|
@ -26,9 +26,9 @@ import { Link } from 'react-router-dom';
|
||||
import { Col, Row, Button } from 'antd';
|
||||
import { SyncOutlined } from '@ant-design/icons';
|
||||
import Status from 'components/Status';
|
||||
import volumeIcon from 'src/asset/image/volume.svg';
|
||||
import instanceIcon from 'src/asset/image/instance.svg';
|
||||
import interfaceIcon from 'src/asset/image/interface.svg';
|
||||
import volumeIcon from 'asset/image/volume.svg';
|
||||
import instanceIcon from 'asset/image/instance.svg';
|
||||
import interfaceIcon from 'asset/image/interface.svg';
|
||||
import classnames from 'classnames';
|
||||
import ImageType from 'components/ImageType';
|
||||
import { instanceStatus, isIronicInstance } from 'resources/instance';
|
||||
|
@ -20,8 +20,8 @@ import { Table, Popover } from 'antd';
|
||||
import globalActionLogStore from 'stores/nova/action-log';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import lockSvg from 'src/asset/image/lock.svg';
|
||||
import unlockSvg from 'src/asset/image/unlock.svg';
|
||||
import lockSvg from 'asset/image/lock.svg';
|
||||
import unlockSvg from 'asset/image/unlock.svg';
|
||||
|
||||
const lockIcon = <img src={lockSvg} alt="lock" style={{ width: '12px' }} />;
|
||||
const unlockIcon = (
|
||||
|