数据中心

dev
陈博文 4 years ago
parent 8b9c4d08d7
commit 0912e03f6d

@ -35,6 +35,24 @@ export default defineConfig({
},
],
},
{
path: '/equipment',
component: '@/pages/Equipment/Header',
routes: [
{
path: '/equipment/index',
component: '@/pages/Equipment/List/Index',
},
// {
// path: '/basic/device',
// component: '@/pages/Basic/List/Device',
// },
// {
// path: '/basic/certificate',
// component: '@/pages/Basic/List/Certificate',
// },
],
},
],
},
],

@ -6,6 +6,12 @@
color: #ffffff;
line-height: 60px;
padding-left: 40px;
display: flex;
align-items: center;
i {
font-size: 26px;
}
}
.content {

@ -4,7 +4,10 @@ import { Fragment } from 'react';
const Header = ({ ...props }) => {
return (
<Fragment>
<div className={styles.head}></div>
<div className={styles.head}>
<i className="iconfont icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi mr10" />
</div>
<div className={styles.content}>{props.children}</div>
</Fragment>
);

@ -0,0 +1,57 @@
.head {
height: 60px;
background: #001628;
> section {
margin: 0 auto;
height: 100%;
font-size: 18px;
display: flex;
align-items: center;
color: #fff;
width: 1200px;
> span {
font-size: 18px;
font-weight: 500;
color: #ffffff;
line-height: 18px;
letter-spacing: 2px;
}
> ul {
margin: 0;
padding: 0;
flex: 1;
display: flex;
align-items: center;
li {
list-style: none;
margin-left: 100px;
font-size: 14px;
font-weight: 600;
color: #28b1ff;
position: relative;
cursor: default;
}
b {
position: absolute;
z-index: 1;
left: 50%;
transform: translateX(-50%);
bottom: -9px;
width: 40px;
height: 2px;
background: #28b1ff;
}
}
}
}
.content {
height: calc(100vh - 60px);
background-color: #fafafa;
overflow: auto;
}

@ -0,0 +1,36 @@
import styles from './index.less';
import { Fragment } from 'react';
const Header = ({ ...props }) => {
const menu = [
{
id: 1,
name: '基础设施开通',
},
// {
// id: 2,
// name: '基础设施开通2',
// }
];
return (
<Fragment>
<div className={styles.head}>
<section>
<i className="iconfont icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi mr10 font26" />
<span></span>
<ul>
{menu.map((e: any) => (
<li key={e.id}>
<span>{e.name}</span>
<b />
</li>
))}
</ul>
<div className="font14">V0.4.0.0</div>
</section>
</div>
<div className={styles.content}>{props.children}</div>
</Fragment>
);
};
export default Header;

@ -0,0 +1,29 @@
.page {
background-color: #fff;
width: 1200px;
margin: 0 auto;
min-height: 600px;
overflow: hidden;
padding-bottom: 20px;
.name {
display: flex;
align-items: center;
margin-bottom: 50px;
margin-top: 30px;
b {
width: 6px;
height: 20px;
background: #464f66;
border-radius: 4px;
display: inline-block;
margin-right: 4px;
}
span {
font-size: 24px;
font-weight: 500;
color: #232b40;
}
}
}

@ -0,0 +1,182 @@
import styles from './index.less';
import { Input, Button, Row, Form, Select, message } from 'antd';
import { FC } from 'react';
import { connect, Dispatch, BasicInfoModelState } from 'umi';
import Fetch from '@/utils/fetch';
interface PageProps {
basic: BasicInfoModelState;
dispatch: Dispatch;
}
const Page: FC<PageProps> = ({ basic, dispatch }) => {
const [form] = Form.useForm();
const { certificateInfo } = basic;
const { step } = certificateInfo;
console.log(certificateInfo, 'certificateInfo');
const handleValuesChange = (v: any) => {
dispatch({
type: 'basic/setCertificateInfo',
payload: v,
});
};
const testLink = async () => {
const res = await Fetch('/openi/resource/dbTestConnection', {
method: 'post',
data: {
dbType: certificateInfo.dbType,
dbDrive: certificateInfo.dbDrive,
dbIp: certificateInfo.dbIp,
dbPort: certificateInfo.dbPort,
dbName: certificateInfo.dbName,
dbUser: certificateInfo.dbUser,
dbPasswd: certificateInfo.dbPasswd,
},
});
if (res.result === 'success') {
const data = res?.data?.[0];
dispatch({
type: 'basic/setCertificateInfo',
payload: {
dbIsConn: data?.isConn,
},
});
} else {
message.error(res.errorMsg);
}
};
return (
<div
style={{ display: step === 1 ? 'block' : 'none' }}
className={styles.page}
>
<div className={styles.name}>
<b /> <span></span>
</div>
<Form
form={form}
colon={false}
layout="horizontal"
labelCol={{ span: 5 }}
size="large"
wrapperCol={{ span: 14 }}
onValuesChange={handleValuesChange}
onFinish={() => {
dispatch({
type: 'basic/setCertificateInfo',
payload: { step: 2 },
});
}}
>
<Form.Item
label="数据库类型"
name="dbType"
rules={[
{
required: true,
message: `请输入数据库类型`,
},
]}
>
<Select>
<Select.Option key={'ORACEL'}>ORACEL</Select.Option>
<Select.Option key={'SQL'}>SQL</Select.Option>
<Select.Option key={'SERVER'}>SERVER</Select.Option>
</Select>
</Form.Item>
<Form.Item
label="数据库驱动"
name="dbDrive"
rules={[
{
required: true,
message: `请输入数据库驱动`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="IP地址"
name="dbIp"
rules={[
{
required: true,
message: `请输入IP地址`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="端口号"
name="dbPort"
rules={[
{
required: true,
message: `请输入端口号`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="数据库名"
name="dbName"
rules={[
{
required: true,
message: `请输入数据库名`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="数据库用户名"
name="dbUser"
rules={[
{
required: true,
message: `请输入数据库用户名`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="数据库密码"
name="dbPasswd"
rules={[
{
required: true,
message: `请输入数据库密码`,
},
]}
>
<Input.Password autoComplete="new-password" />
</Form.Item>
</Form>
<Row justify="end">
<Button onClick={testLink} type="primary">
</Button>
<Button
type="primary"
ghost
onClick={() => form.submit()}
className="ml20"
>
</Button>
</Row>
</div>
);
};
export default connect(({ basic }: { basic: BasicInfoModelState }) => ({
basic,
}))(Page);

@ -0,0 +1,51 @@
.page {
background-color: #fff;
width: 1200px;
margin: 0 auto;
min-height: 600px;
overflow: hidden;
padding-bottom: 20px;
.name {
display: flex;
align-items: center;
margin-bottom: 50px;
margin-top: 30px;
b {
width: 6px;
height: 20px;
background: #464f66;
border-radius: 4px;
display: inline-block;
margin-right: 4px;
}
span {
font-size: 24px;
font-weight: 500;
color: #232b40;
}
}
.title {
display: flex;
align-items: center;
margin-left: 60px;
margin-bottom: 30px;
b {
width: 4px;
height: 14px;
background: #464f66;
border-radius: 4px;
display: inline-block;
margin-right: 4px;
}
span {
font-size: 18px;
font-weight: 500;
color: #464f66;
}
}
}

@ -0,0 +1,169 @@
import styles from './index.less';
import { Input, Button, Row, Form } from 'antd';
import { FC } from 'react';
import { connect, Dispatch, BasicInfoModelState } from 'umi';
interface PageProps {
basic: BasicInfoModelState;
dispatch: Dispatch;
}
const Page: FC<PageProps> = ({ basic, dispatch }) => {
const [form] = Form.useForm();
const { certificateInfo } = basic;
const { step } = certificateInfo;
console.log(certificateInfo, 'certificateInfo');
const handleValuesChange = (v: any) => {
dispatch({
type: 'basic/setCertificateInfo',
payload: v,
});
};
return (
<div
style={{ display: step === 2 ? 'block' : 'none' }}
className={styles.page}
>
<div className={styles.name}>
<b /> <span></span>
</div>
<Form
form={form}
colon={false}
layout="horizontal"
labelCol={{ span: 5 }}
size="large"
wrapperCol={{ span: 14 }}
onValuesChange={handleValuesChange}
onFinish={() => {
dispatch({
type: 'basic/setCertificateInfo',
payload: { step: 3 },
});
}}
>
<div className={styles.title}>
<b /> <span></span>
</div>
<Form.Item
label="服务器地址"
name="targetIp"
rules={[
{
required: true,
message: `请输入服务器地址`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="服务器端口"
name="targetPort"
rules={[
{
required: true,
message: `请输入服务器端口`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="用户DN"
name="targetUserdn"
rules={[
{
required: true,
message: `请输入用户DN`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="用户口令"
name="targetPasswd"
rules={[
{
required: true,
message: `请输入用户口令`,
},
]}
>
<Input.Password autoComplete="new-password" />
</Form.Item>
<div className={styles.title}>
<b /> <span></span>
</div>
<Form.Item
label="文件路径"
name="certUrl"
rules={[
{
required: true,
message: `请输入文件路径`,
},
]}
>
<Input />
</Form.Item>
<div className={styles.title}>
<b /> <span>CRL</span>
</div>
<Form.Item
label="CRL发布点中的证书数量"
name="certNum"
rules={[
{
required: true,
message: `请输入CRL发布点中的证书数量`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="CRL发布周期"
name="certCycle"
rules={[
{
required: true,
message: `请输入CRL发布周期`,
},
]}
>
<Input />
</Form.Item>
</Form>
<Row justify="end">
<Button
onClick={() => {
dispatch({
type: 'basic/setCertificateInfo',
payload: { step: 1 },
});
}}
type="primary"
ghost
>
</Button>
<Button
type="primary"
ghost
onClick={() => form.submit()}
className="ml20"
>
</Button>
</Row>
</div>
);
};
export default connect(({ basic }: { basic: BasicInfoModelState }) => ({
basic,
}))(Page);

@ -0,0 +1,48 @@
.page {
background-color: #fff;
width: 1200px;
margin: 0 auto;
min-height: 600px;
overflow: hidden;
padding-bottom: 20px;
.name {
display: flex;
align-items: center;
margin-bottom: 50px;
margin-top: 30px;
b {
width: 6px;
height: 20px;
background: #464f66;
border-radius: 4px;
display: inline-block;
margin-right: 4px;
}
span {
font-size: 24px;
font-weight: 500;
color: #232b40;
}
}
.row {
display: flex;
align-items: center;
justify-content: center;
padding: 30px 0;
sup {
color: red;
margin-top: 13px;
margin-right: 4px;
font-size: 14px;
}
button {
margin-left: 30px;
margin-right: 10px;
}
}
}

@ -0,0 +1,141 @@
import styles from './index.less';
import { message, Button, Row, Form } from 'antd';
import Fetch from '@/utils/fetch';
import { useState, FC } from 'react';
import { connect, Dispatch, BasicInfoModelState } from 'umi';
interface PageProps {
basic: BasicInfoModelState;
dispatch: Dispatch;
}
const Page: FC<PageProps> = ({ basic, dispatch }) => {
const { certificateInfo } = basic;
const { step, importCertFile1, importCertFile2 } = certificateInfo;
const [file1, setFile1] = useState<any>(null);
const [file2, setFile2] = useState<any>(null);
const [upload, setUpload] = useState<boolean>(true);
console.log(certificateInfo, 'certificateInfo');
const handleFile = (type: string) => {
var inputObj = document.createElement('input');
inputObj.setAttribute('id', '_ef');
inputObj.setAttribute('type', 'file');
inputObj.setAttribute('style', 'visibility:hidden');
document.body.appendChild(inputObj);
inputObj.click();
inputObj.onchange = (e: any) => {
if (type === 'file1') {
setFile1(e?.target?.files?.[0]);
} else {
setFile2(e?.target?.files?.[0]);
}
};
};
const uploadFile = async () => {
const data: any = new FormData();
data.append('files', file1);
data.append('files', file2);
const res = await Fetch('/openi/resource/importFiles', {
method: 'post',
data,
});
if (res.result === 'success') {
message.success('上传成功');
const data = res?.data?.[0];
dispatch({
type: 'basic/setCertificateInfo',
payload: {
importCertFile1: data[0],
importCertFile2: data[1],
},
});
setUpload(false);
}
};
const skip = async () => {
const res = await Fetch('/openi/resource/getCertInfomation');
if (res.errorCode === 500) {
message.error(res?.errorMsg);
return;
}
if (res.result === 'success') {
const data = res?.data?.[0];
dispatch({
type: 'basic/setCertificateInfo',
payload: {
result: data,
},
});
dispatch({
type: 'basic/setCertificateInfo',
payload: { step: 4 },
});
}
};
return (
<div
style={{ display: step === 3 ? 'block' : 'none' }}
className={styles.page}
>
<div className={styles.name}>
<b /> <span></span>
</div>
<div className={styles.row}>
<sup>*</sup>
<div>ECCDSA359*.p7b</div>
<Button onClick={() => handleFile('file1')} type="primary" ghost>
{!!file1 ? '已选择' : '浏览'}
</Button>
<span>{importCertFile1}</span>
</div>
<div className={styles.row}>
<sup>*</sup>
<div>ECCDSA279*.p7b</div>
<Button onClick={() => handleFile('file2')} type="primary" ghost>
{!!file2 ? '已选择' : '浏览'}
</Button>
<span>{importCertFile2}</span>
</div>
<div className={styles.row}>
<Button
disabled={!(file1 && file2)}
onClick={uploadFile}
type="primary"
>
</Button>
</div>
<Row justify="end">
<Button
onClick={() => {
dispatch({
type: 'basic/setCertificateInfo',
payload: { step: 2 },
});
}}
type="primary"
ghost
>
</Button>
<Button
disabled={upload}
type="primary"
ghost
className="ml20"
onClick={skip}
>
</Button>
</Row>
</div>
);
};
export default connect(({ basic }: { basic: BasicInfoModelState }) => ({
basic,
}))(Page);

@ -0,0 +1,71 @@
.page {
background-color: #fff;
width: 1200px;
margin: 0 auto;
min-height: 600px;
overflow: hidden;
padding-bottom: 20px;
.name {
display: flex;
align-items: center;
margin-bottom: 50px;
margin-top: 30px;
b {
width: 6px;
height: 20px;
background: #464f66;
border-radius: 4px;
display: inline-block;
margin-right: 4px;
}
span {
font-size: 24px;
font-weight: 500;
color: #232b40;
}
}
.title {
display: flex;
align-items: center;
margin-left: 60px;
margin-bottom: 10px;
b {
width: 4px;
height: 14px;
background: #464f66;
border-radius: 4px;
display: inline-block;
margin-right: 4px;
}
span {
font-size: 18px;
font-weight: 500;
color: #464f66;
}
}
.row {
display: flex;
align-items: center;
justify-content: center;
padding: 15px 0;
span {
margin: 0 10px;
width: 50%;
font-size: 14px;
color: #333;
}
span:first-child {
text-align: right;
color: #464f66;
}
}
}

@ -0,0 +1,106 @@
import styles from './index.less';
import { Button, Row, message } from 'antd';
import { FC } from 'react';
import Fetch from '@/utils/fetch';
import { connect, Dispatch, BasicInfoModelState, history } from 'umi';
interface PageProps {
basic: BasicInfoModelState;
dispatch: Dispatch;
}
const Page: FC<PageProps> = ({ basic, dispatch }) => {
const { certificateInfo } = basic;
const { step, result } = certificateInfo;
const handleClick = async () => {
const res = await Fetch('/openi/resource/openCertNow', {
method: 'post',
data: certificateInfo,
});
if (res.result === 'success') {
message.success('开通证书系统成功');
history.replace('/basic/login');
}
};
return (
<div
style={{ display: step === 4 ? 'block' : 'none' }}
className={styles.page}
>
<div className={styles.name}>
<b /> <span></span>
</div>
<div className={styles.title}>
<b /> <span>ECCDSA359</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[0]}</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[1]}</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[2]}</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[3]}</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[4]}</span>
</div>
<div className={styles.title}>
<b /> <span>ECCDSA281</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[5]}</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[6]}</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[7]}</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[8]}</span>
</div>
<div className={styles.row}>
<span></span>
<span>{result?.[9]}</span>
</div>
<Row justify="end">
<Button
onClick={() => {
dispatch({
type: 'basic/setCertificateInfo',
payload: { step: 3 },
});
}}
type="primary"
ghost
>
</Button>
<Button type="primary" ghost className="ml20" onClick={handleClick}>
</Button>
</Row>
</div>
);
};
export default connect(({ basic }: { basic: BasicInfoModelState }) => ({
basic,
}))(Page);

@ -0,0 +1,4 @@
.page {
background-color: #fff;
margin-top: 20px;
}

@ -0,0 +1,18 @@
import styles from './index.less';
import { FC } from 'react';
import Step1 from './Step1';
import Step2 from './Step2';
import Step3 from './Step3';
import Step4 from './Step4';
const Page: FC<{}> = () => {
return (
<div className={styles.page}>
<Step1 />
<Step2 />
<Step3 />
<Step4 />
</div>
);
};
export default Page;

@ -0,0 +1,51 @@
.page {
background-color: #fff;
padding: 40px 118px;
sup {
color: red;
margin-top: 10px;
margin-right: 4px;
font-size: 14px;
}
.name {
display: flex;
align-items: center;
margin-bottom: 32px;
b {
width: 6px;
height: 20px;
background: #464f66;
border-radius: 4px;
display: inline-block;
margin-right: 4px;
}
span {
font-size: 24px;
font-weight: 500;
color: #232b40;
}
}
.status {
font-size: 14px;
font-weight: 500;
color: #464f66;
margin-bottom: 30px;
span {
color: #e30000;
}
}
.box3 {
border-top: 1px solid #e3e4e6;
border-bottom: 1px solid #e3e4e6;
margin-top: 20px;
padding-top: 20px;
padding-bottom: 20px;
}
}

@ -0,0 +1,314 @@
import styles from './index.less';
import { message, Input, Button, Row, Modal, Form, Tabs } from 'antd';
import Fetch from '@/utils/fetch';
import { useEffect, useState, FC } from 'react';
import {
connect,
ConnectProps,
Dispatch,
BasicInfoModelState,
history,
} from 'umi';
import { cloneDeep } from 'lodash';
interface PageProps extends ConnectProps {
basic: BasicInfoModelState;
dispatch: Dispatch;
match: any;
}
const Page: FC<PageProps> = ({ basic, dispatch }) => {
const { basicInfo } = basic;
const [uploadDisabled, setUploadDisabled] = useState<boolean>(false);
const {
type,
dataName,
nodeName,
deviceNo,
supportUnit,
managerNode,
file1,
file2,
file3,
file4,
} = basicInfo;
const btnDisabled =
dataName &&
nodeName &&
deviceNo &&
supportUnit &&
managerNode &&
file1?.name &&
file2?.name &&
file3?.name &&
file4?.name;
console.log(basicInfo, 'basicInfo');
const handleFile = (type: string) => {
var inputObj = document.createElement('input');
inputObj.setAttribute('id', '_ef');
inputObj.setAttribute('type', 'file');
inputObj.setAttribute('style', 'visibility:hidden');
document.body.appendChild(inputObj);
inputObj.click();
inputObj.onchange = (e: any) => {
console.log(e, 444);
dispatch({
type: 'basic/setActionData',
payload: {
[type]: {
file: e?.target?.files?.[0],
},
},
});
};
};
const handleInput = (type: string, value: string) => {
dispatch({
type: 'basic/setActionData',
payload: {
[type]: value,
},
});
};
const uploadFile = async () => {
const data: any = new FormData();
data.append('files', file1.file);
data.append('files', file2.file);
data.append('files', file3.file);
data.append('files', file4.file);
const res = await Fetch('/openi/resource/importFiles', {
method: 'post',
data,
});
if (res.result === 'success') {
message.success('上传成功');
const data = res?.data?.[0];
dispatch({
type: 'basic/setActionData',
payload: {
file1: {
file: file1.file,
name: data[0],
},
file2: {
file: file2.file,
name: data[1],
},
file3: {
file: file3.file,
name: data[2],
},
file4: {
file: file4.file,
name: data[3],
},
},
});
setUploadDisabled(true);
}
};
const open = async () => {
const sendData: any = cloneDeep(basicInfo);
sendData.type = Number(sendData.type);
sendData.file1 = sendData.file1.name;
sendData.file2 = sendData.file2.name;
sendData.file3 = sendData.file3.name;
sendData.file4 = sendData.file4.name;
const res = await Fetch('/openi/resource/openResourceNow', {
method: 'post',
data: sendData,
});
if (res.result === 'success') {
message.success('成功开通设施管理设备');
history.replace('/basic/login');
}
};
return (
<div className={styles.page}>
<div className={styles.name}>
{' '}
<b /> <span></span>
</div>
<div className={styles.status}>
<span>{'未开通'}</span>
</div>
<Tabs
activeKey={type}
onChange={(k: string) => {
dispatch({
type: 'basic/setActionData',
payload: { type: k },
});
}}
>
<Tabs.TabPane key={'1'} tab="总部级" />
<Tabs.TabPane key={'2'} tab="大单位级别" />
</Tabs>
<div style={{ margin: '20px 0', fontWeight: 'bold', color: '#464F66' }}>
</div>
<Row align="middle">
<Row align="middle" className="mr40">
<sup>*</sup>
<span></span>
<Input
value={dataName}
onChange={(e) => handleInput('dataName', e.target.value)}
size="large"
style={{ width: 255, margin: '20px 10px' }}
/>
</Row>
<Row align="middle">
<sup>*</sup>
<span></span>
<Input
value={deviceNo}
onChange={(e) => handleInput('deviceNo', e.target.value)}
size="large"
style={{ width: 255, margin: '20px 10px' }}
/>
</Row>
</Row>
<Row align="middle">
<Row align="middle" className="mr40">
<sup>*</sup>
<span></span>
<Input
value={nodeName}
onChange={(e) => handleInput('nodeName', e.target.value)}
size="large"
style={{ width: 255, margin: '20px 10px' }}
/>
</Row>
<Row align="middle">
<sup>*</sup>
<span></span>
<Input
value={supportUnit}
onChange={(e) => handleInput('supportUnit', e.target.value)}
size="large"
style={{ width: 255, margin: '20px 10px' }}
/>
</Row>
</Row>
<Row align="middle">
<Row align="middle" className="mr40">
<sup>*</sup>
<span></span>
<Input
value={managerNode}
onChange={(e) => handleInput('managerNode', e.target.value)}
size="large"
style={{ width: 255, margin: '20px 10px' }}
/>
</Row>
</Row>
<div className={styles.box3}>
<Button
onClick={uploadFile}
disabled={!(file1?.file && file2?.file && file3?.file && file4?.file)}
type="primary"
>
</Button>
<Row align="middle">
<Row align="middle" className="mr40">
<sup>*</sup>
<span>64</span>
<Input
readOnly
value={file1?.name}
size="large"
style={{ width: 255, margin: '20px 10px' }}
/>
<Button
disabled={uploadDisabled}
onClick={() => handleFile('file1')}
type="primary"
ghost
size="large"
>
{!!file1?.file ? '已选择' : '浏览'}
</Button>
</Row>
<Row align="middle">
<sup>*</sup>
<span>32</span>
<Input
readOnly
value={file2?.name}
size="large"
style={{ width: 255, margin: '20px 10px' }}
/>
<Button
disabled={uploadDisabled}
onClick={() => handleFile('file2')}
type="primary"
ghost
size="large"
>
{!!file2?.file ? '已选择' : '浏览'}
</Button>
</Row>
</Row>
<Row align="middle">
<Row align="middle" className="mr40">
<sup>*</sup>
<span>20</span>
<Input
readOnly
value={file3?.name}
size="large"
style={{ width: 255, margin: '20px 10px' }}
/>
<Button
disabled={uploadDisabled}
onClick={() => handleFile('file3')}
type="primary"
ghost
size="large"
>
{!!file3?.file ? '已选择' : '浏览'}
</Button>
</Row>
<Row align="middle">
<sup>*</sup>
<span>16</span>
<Input
readOnly
value={file4?.name}
size="large"
style={{ width: 255, margin: '20px 10px' }}
/>
<Button
disabled={uploadDisabled}
onClick={() => handleFile('file4')}
type="primary"
ghost
size="large"
>
{!!file4?.file ? '已选择' : '浏览'}
</Button>
</Row>
</Row>
</div>
<Button
onClick={open}
disabled={!btnDisabled}
className="mt20"
type="primary"
>
</Button>
</div>
);
};
export default connect(({ basic }: { basic: BasicInfoModelState }) => ({
basic,
}))(Page);

@ -0,0 +1,167 @@
.page {
width: 1200px;
margin: 22px auto;
display: flex;
justify-content: space-between;
.left {
width: 146px;
height: 334px;
background: #ffffff;
border-radius: 4px;
padding-top: 18px;
> div {
height: 44px;
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: #464f66;
padding: 20px;
cursor: pointer;
&:hover {
color: @primary-color;
}
i {
padding-right: 10px;
font-size: 14px;
}
}
}
.right {
width: 1034px;
border-radius: 4px;
.info {
background: #ffffff;
border-radius: 4px;
.name {
width: 250px;
height: 36px;
border-radius: 4px 4px 0 0;
background: #eef2f8;
line-height: 48px;
font-size: 14px;
font-weight: 500;
color: #165dff;
text-align: center;
}
.wrap {
background: #eef2f8;
height: 154px;
padding: 20px;
display: flex;
align-items: center;
justify-content: center;
> aside {
width: 994px;
height: 124px;
background: #ffffff;
> div:first-child {
height: 36px;
background: #98bdf7;
line-height: 36px;
text-align: center;
font-size: 14px;
font-weight: 400;
color: #232b40;
}
}
.li {
display: flex;
> div {
width: 50%;
padding: 16px;
color: #464f66;
span:first-child {
color: #9096a3;
margin-right: 10px;
}
}
> div:first-child {
border-right: 1px solid #e3effc;
}
}
}
}
.list {
margin-top: 10px;
.head {
height: 72px;
background: #ffffff;
border-radius: 4px 4px 0 0;
padding: 0 20px;
display: flex;
justify-content: space-between;
align-items: center;
div {
font-size: 14px;
font-weight: 500;
color: #464f66;
}
}
.content {
overflow: hidden;
background: #ffffff;
border-radius: 0 0 4px 4px;
padding: 0 20px;
> aside {
height: 124px;
background: #ffffff;
> div:first-child {
height: 36px;
background: #e3effc;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 14px;
color: #232b40;
padding: 0 20px;
div {
color: @primary-color;
}
}
}
.li {
display: flex;
i {
font-size: 34px;
color: #a0a4f7;
padding: 16px 50px 16px 16px;
}
> div {
padding: 16px 80px 16px 16px;
color: #464f66;
span:first-child {
color: #9096a3;
margin-right: 10px;
}
}
}
}
}
}
}

@ -0,0 +1,233 @@
import styles from './index.less';
import { Select, Input, Button, Row, Modal, Form, message, Empty } from 'antd';
import Fetch from '@/utils/fetch';
import { useEffect, useState, FC } from 'react';
import {
connect,
ConnectProps,
Dispatch,
BasicInfoModelState,
history,
} from 'umi';
import { downLoadLink } from '@/utils/download';
import url from '@/utils/url';
interface PageProps extends ConnectProps {
basic: BasicInfoModelState;
dispatch: Dispatch;
match: any;
}
const Page: FC<PageProps> = ({ basic, dispatch }) => {
const [facilityList, setFacilityList] = useState<any[]>([{}]);
const [visible, setVisible] = useState<boolean>(false);
const [form] = Form.useForm();
useEffect(() => {
getData();
}, []);
const getData = async () => {
const res = await Fetch('/openi/resource/getResourceStatus');
if (res.result === 'success') {
dispatch({
type: 'basic/setActionData',
payload: {
resource: res?.data?.[0]?.resource ? '已开通' : '未开通',
cert: res?.data?.[0]?.cert ? '已开通' : '未开通',
},
});
}
};
const open = async () => {
const res = await Fetch.post('/openi/resource/clickOpenResource');
if (res.result === 'success') {
form.setFieldsValue({ dbUser, dbPasswd, dbServerIp });
setVisible(true);
}
};
const certificateOpen = async () => {
if (!company) {
message.warn('选择单位不能为空');
return;
}
if (!certSign) {
message.warn('请先下载证书');
return;
}
const res = await Fetch.post('/openi/resource/openCertSystem');
if (res.result === 'success') {
history.replace('/basic/certificate');
}
};
const handleFinish = (v: any) => {
const { dbUser, dbPasswd, dbServerIp } = v;
dispatch({
type: 'basic/setActionData',
payload: { dbUser, dbPasswd, dbServerIp },
});
setVisible(false);
history.replace('/basic/device');
};
return (
<div className={styles.page}>
<div className={styles.left}>
<div>
<i className="iconfont icon-shuju" />
</div>
<div>
<i className="iconfont icon-jiedian" />
</div>
</div>
<div className={styles.right}>
<div className={styles.info}>
<div className={styles.name}></div>
<div className={styles.wrap}>
<aside>
<div></div>
<div className={styles.li}>
<div>
<p>
<span></span>
<span>22</span>
</p>
<p>
<span></span>
<span></span>
</p>
</div>
<div>
<p>
<span></span>
<span></span>
</p>
<p>
<span></span>
<span>NO.88888888888</span>
</p>
</div>
</div>
</aside>
</div>
</div>
<div className={styles.list}>
<div className={styles.head}>
<div></div>
<Button type="primary" ghost>
</Button>
</div>
<div className={styles.content}>
{!facilityList.length && <Empty style={{ margin: '20px 0' }} />}
{!!facilityList.length &&
facilityList.map((e: any, i: number) => {
return (
<aside key={i}>
<div>
<span>XXXX</span>
<div>
<i className="iconfont icon-mimaruanjianjiami mr5" />
<span></span>
</div>
</div>
<div className={styles.li}>
<i className="iconfont icon-zhucedengji"></i>
<div>
<p>
<span></span>
<span>22</span>
</p>
<p>
<span></span>
<span></span>
</p>
</div>
<div>
<p>
<span></span>
<span></span>
</p>
<p>
<span></span>
<span>NO.88888888888</span>
</p>
</div>
</div>
</aside>
);
})}
</div>
</div>
</div>
<Modal
centered
title="填写用户信息"
visible={visible}
okText="保存"
cancelText="取消"
onOk={() => {
form.submit();
}}
onCancel={() => {
setVisible(false);
}}
>
<Form
form={form}
layout="horizontal"
onFinish={handleFinish}
labelCol={{ span: 8 }}
wrapperCol={{ span: 16 }}
>
<Form.Item
label="数据库用户名"
name="dbUser"
rules={[
{
required: true,
message: `请输入数据库用户名`,
},
]}
>
<Input />
</Form.Item>
<Form.Item
label="数据库密码"
name="dbPasswd"
rules={[
{
required: true,
message: `请输入数据库密码`,
},
]}
>
<Input.Password autoComplete="new-password" />
</Form.Item>
<Form.Item
label="数据库服务器IP地址"
name="dbServerIp"
rules={[
{
required: true,
message: `请输入数据库服务器IP地址`,
},
]}
>
<Input />
</Form.Item>
</Form>
</Modal>
</div>
);
};
export default connect(({ basic }: { basic: BasicInfoModelState }) => ({
basic,
}))(Page);

@ -43,7 +43,7 @@
}
.mt20 {
margin-top: 20px;
margin-top: 20px !important;
}
.mt25 {
@ -531,6 +531,10 @@
font-size: 24px;
}
.font26 {
font-size: 26px;
}
.font28 {
font-size: 28px;
}

@ -3,8 +3,8 @@
<head>
<meta charset="utf-8"/>
<title>iconfont Demo</title>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i2/O1CN01ZyAlrn1MwaMhqz36G_!!6000000001499-73-tps-64-64.ico" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01EYTRnJ297D6vehehJ_!!6000000008020-55-tps-64-64.svg"/>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
@ -54,6 +54,150 @@
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe715;</span>
<div class="name">大数据</div>
<div class="code-name">&amp;#xe715;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe66c;</span>
<div class="name">大数据,数据结构,关系,关系分析,共同联系人,组织</div>
<div class="code-name">&amp;#xe66c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe701;</span>
<div class="name">厂商信息管理</div>
<div class="code-name">&amp;#xe701;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe702;</span>
<div class="name">配发管理</div>
<div class="code-name">&amp;#xe702;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe707;</span>
<div class="name">公私钥对资源</div>
<div class="code-name">&amp;#xe707;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe709;</span>
<div class="name">软件资源</div>
<div class="code-name">&amp;#xe709;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe70a;</span>
<div class="name">算法参数资源</div>
<div class="code-name">&amp;#xe70a;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe70b;</span>
<div class="name">型号管理</div>
<div class="code-name">&amp;#xe70b;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe70d;</span>
<div class="name">信息查询</div>
<div class="code-name">&amp;#xe70d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe70e;</span>
<div class="name">信息统计</div>
<div class="code-name">&amp;#xe70e;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe712;</span>
<div class="name">预制资源</div>
<div class="code-name">&amp;#xe712;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe713;</span>
<div class="name">注册登记</div>
<div class="code-name">&amp;#xe713;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe714;</span>
<div class="name">算法逻辑资源</div>
<div class="code-name">&amp;#xe714;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6ff;</span>
<div class="name">导入资源文件</div>
<div class="code-name">&amp;#xe6ff;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe700;</span>
<div class="name">收起</div>
<div class="code-name">&amp;#xe700;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe703;</span>
<div class="name">关闭</div>
<div class="code-name">&amp;#xe703;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe704;</span>
<div class="name">搜索</div>
<div class="code-name">&amp;#xe704;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe705;</span>
<div class="name">删除装备型号</div>
<div class="code-name">&amp;#xe705;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe706;</span>
<div class="name">刷新 (2)</div>
<div class="code-name">&amp;#xe706;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe708;</span>
<div class="name">添加</div>
<div class="code-name">&amp;#xe708;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe70c;</span>
<div class="name">下拉</div>
<div class="code-name">&amp;#xe70c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe70f;</span>
<div class="name">修改库存底线</div>
<div class="code-name">&amp;#xe70f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe710;</span>
<div class="name">退出 </div>
<div class="code-name">&amp;#xe710;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe711;</span>
<div class="name">重置</div>
<div class="code-name">&amp;#xe711;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe66b;</span>
<div class="name">箭头</div>
@ -150,12 +294,12 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.eot?t=1660117709966'); /* IE9 */
src: url('iconfont.eot?t=1660117709966#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('iconfont.woff2?t=1660117709966') format('woff2'),
url('iconfont.woff?t=1660117709966') format('woff'),
url('iconfont.ttf?t=1660117709966') format('truetype'),
url('iconfont.svg?t=1660117709966#iconfont') format('svg');
src: url('iconfont.eot?t=1660272808431'); /* IE9 */
src: url('iconfont.eot?t=1660272808431#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('iconfont.woff2?t=1660272808431') format('woff2'),
url('iconfont.woff?t=1660272808431') format('woff'),
url('iconfont.ttf?t=1660272808431') format('truetype'),
url('iconfont.svg?t=1660272808431#iconfont') format('svg');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@ -181,6 +325,222 @@
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi1"></span>
<div class="name">
大数据
</div>
<div class="code-name">.icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi1
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi"></span>
<div class="name">
大数据,数据结构,关系,关系分析,共同联系人,组织
</div>
<div class="code-name">.icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-changshangxinxiguanli"></span>
<div class="name">
厂商信息管理
</div>
<div class="code-name">.icon-changshangxinxiguanli
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-peifaguanli"></span>
<div class="name">
配发管理
</div>
<div class="code-name">.icon-peifaguanli
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-gongsiyueduiziyuan"></span>
<div class="name">
公私钥对资源
</div>
<div class="code-name">.icon-gongsiyueduiziyuan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-ruanjianziyuan"></span>
<div class="name">
软件资源
</div>
<div class="code-name">.icon-ruanjianziyuan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-suanfacanshuziyuan"></span>
<div class="name">
算法参数资源
</div>
<div class="code-name">.icon-suanfacanshuziyuan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xinghaoguanli"></span>
<div class="name">
型号管理
</div>
<div class="code-name">.icon-xinghaoguanli
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xinxichaxun"></span>
<div class="name">
信息查询
</div>
<div class="code-name">.icon-xinxichaxun
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xinxitongji"></span>
<div class="name">
信息统计
</div>
<div class="code-name">.icon-xinxitongji
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-yuzhiziyuan"></span>
<div class="name">
预制资源
</div>
<div class="code-name">.icon-yuzhiziyuan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-zhucedengji"></span>
<div class="name">
注册登记
</div>
<div class="code-name">.icon-zhucedengji
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-suanfaluojiziyuan"></span>
<div class="name">
算法逻辑资源
</div>
<div class="code-name">.icon-suanfaluojiziyuan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-daoruziyuanwenjian"></span>
<div class="name">
导入资源文件
</div>
<div class="code-name">.icon-daoruziyuanwenjian
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shouqi"></span>
<div class="name">
收起
</div>
<div class="code-name">.icon-shouqi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-guanbi"></span>
<div class="name">
关闭
</div>
<div class="code-name">.icon-guanbi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-sousuo"></span>
<div class="name">
搜索
</div>
<div class="code-name">.icon-sousuo
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shanchuzhuangbeixinghao"></span>
<div class="name">
删除装备型号
</div>
<div class="code-name">.icon-shanchuzhuangbeixinghao
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-a-shuaxin2"></span>
<div class="name">
刷新 (2)
</div>
<div class="code-name">.icon-a-shuaxin2
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-tianjia"></span>
<div class="name">
添加
</div>
<div class="code-name">.icon-tianjia
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xiala"></span>
<div class="name">
下拉
</div>
<div class="code-name">.icon-xiala
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xiugaikucundixian"></span>
<div class="name">
修改库存底线
</div>
<div class="code-name">.icon-xiugaikucundixian
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-tuichu"></span>
<div class="name">
退出
</div>
<div class="code-name">.icon-tuichu
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-zhongzhi"></span>
<div class="name">
重置
</div>
<div class="code-name">.icon-zhongzhi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-jiantou"></span>
<div class="name">
@ -325,6 +685,198 @@
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi1"></use>
</svg>
<div class="name">大数据</div>
<div class="code-name">#icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi1</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi"></use>
</svg>
<div class="name">大数据,数据结构,关系,关系分析,共同联系人,组织</div>
<div class="code-name">#icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-changshangxinxiguanli"></use>
</svg>
<div class="name">厂商信息管理</div>
<div class="code-name">#icon-changshangxinxiguanli</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-peifaguanli"></use>
</svg>
<div class="name">配发管理</div>
<div class="code-name">#icon-peifaguanli</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-gongsiyueduiziyuan"></use>
</svg>
<div class="name">公私钥对资源</div>
<div class="code-name">#icon-gongsiyueduiziyuan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-ruanjianziyuan"></use>
</svg>
<div class="name">软件资源</div>
<div class="code-name">#icon-ruanjianziyuan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-suanfacanshuziyuan"></use>
</svg>
<div class="name">算法参数资源</div>
<div class="code-name">#icon-suanfacanshuziyuan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xinghaoguanli"></use>
</svg>
<div class="name">型号管理</div>
<div class="code-name">#icon-xinghaoguanli</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xinxichaxun"></use>
</svg>
<div class="name">信息查询</div>
<div class="code-name">#icon-xinxichaxun</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xinxitongji"></use>
</svg>
<div class="name">信息统计</div>
<div class="code-name">#icon-xinxitongji</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-yuzhiziyuan"></use>
</svg>
<div class="name">预制资源</div>
<div class="code-name">#icon-yuzhiziyuan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-zhucedengji"></use>
</svg>
<div class="name">注册登记</div>
<div class="code-name">#icon-zhucedengji</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-suanfaluojiziyuan"></use>
</svg>
<div class="name">算法逻辑资源</div>
<div class="code-name">#icon-suanfaluojiziyuan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-daoruziyuanwenjian"></use>
</svg>
<div class="name">导入资源文件</div>
<div class="code-name">#icon-daoruziyuanwenjian</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shouqi"></use>
</svg>
<div class="name">收起</div>
<div class="code-name">#icon-shouqi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-guanbi"></use>
</svg>
<div class="name">关闭</div>
<div class="code-name">#icon-guanbi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-sousuo"></use>
</svg>
<div class="name">搜索</div>
<div class="code-name">#icon-sousuo</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shanchuzhuangbeixinghao"></use>
</svg>
<div class="name">删除装备型号</div>
<div class="code-name">#icon-shanchuzhuangbeixinghao</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-a-shuaxin2"></use>
</svg>
<div class="name">刷新 (2)</div>
<div class="code-name">#icon-a-shuaxin2</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-tianjia"></use>
</svg>
<div class="name">添加</div>
<div class="code-name">#icon-tianjia</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xiala"></use>
</svg>
<div class="name">下拉</div>
<div class="code-name">#icon-xiala</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xiugaikucundixian"></use>
</svg>
<div class="name">修改库存底线</div>
<div class="code-name">#icon-xiugaikucundixian</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-tuichu"></use>
</svg>
<div class="name">退出 </div>
<div class="code-name">#icon-tuichu</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-zhongzhi"></use>
</svg>
<div class="name">重置</div>
<div class="code-name">#icon-zhongzhi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-jiantou"></use>

@ -1,11 +1,11 @@
@font-face {
font-family: "iconfont"; /* Project id 3579477 */
src: url('iconfont.eot?t=1660117709966'); /* IE9 */
src: url('iconfont.eot?t=1660117709966#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('iconfont.woff2?t=1660117709966') format('woff2'),
url('iconfont.woff?t=1660117709966') format('woff'),
url('iconfont.ttf?t=1660117709966') format('truetype'),
url('iconfont.svg?t=1660117709966#iconfont') format('svg');
src: url('iconfont.eot?t=1660272808431'); /* IE9 */
src: url('iconfont.eot?t=1660272808431#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('iconfont.woff2?t=1660272808431') format('woff2'),
url('iconfont.woff?t=1660272808431') format('woff'),
url('iconfont.ttf?t=1660272808431') format('truetype'),
url('iconfont.svg?t=1660272808431#iconfont') format('svg');
}
.iconfont {
@ -16,6 +16,102 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi1:before {
content: "\e715";
}
.icon-a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi:before {
content: "\e66c";
}
.icon-changshangxinxiguanli:before {
content: "\e701";
}
.icon-peifaguanli:before {
content: "\e702";
}
.icon-gongsiyueduiziyuan:before {
content: "\e707";
}
.icon-ruanjianziyuan:before {
content: "\e709";
}
.icon-suanfacanshuziyuan:before {
content: "\e70a";
}
.icon-xinghaoguanli:before {
content: "\e70b";
}
.icon-xinxichaxun:before {
content: "\e70d";
}
.icon-xinxitongji:before {
content: "\e70e";
}
.icon-yuzhiziyuan:before {
content: "\e712";
}
.icon-zhucedengji:before {
content: "\e713";
}
.icon-suanfaluojiziyuan:before {
content: "\e714";
}
.icon-daoruziyuanwenjian:before {
content: "\e6ff";
}
.icon-shouqi:before {
content: "\e700";
}
.icon-guanbi:before {
content: "\e703";
}
.icon-sousuo:before {
content: "\e704";
}
.icon-shanchuzhuangbeixinghao:before {
content: "\e705";
}
.icon-a-shuaxin2:before {
content: "\e706";
}
.icon-tianjia:before {
content: "\e708";
}
.icon-xiala:before {
content: "\e70c";
}
.icon-xiugaikucundixian:before {
content: "\e70f";
}
.icon-tuichu:before {
content: "\e710";
}
.icon-zhongzhi:before {
content: "\e711";
}
.icon-jiantou:before {
content: "\e66b";
}

Binary file not shown.

File diff suppressed because one or more lines are too long

@ -1,10 +1,178 @@
{
"id": "3579477",
"name": "信大图标库",
"name": "信大图标库",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "31215787",
"name": "大数据",
"font_class": "a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi1",
"unicode": "e715",
"unicode_decimal": 59157
},
{
"icon_id": "31214705",
"name": "大数据,数据结构,关系,关系分析,共同联系人,组织",
"font_class": "a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi",
"unicode": "e66c",
"unicode_decimal": 58988
},
{
"icon_id": "31175964",
"name": "厂商信息管理",
"font_class": "changshangxinxiguanli",
"unicode": "e701",
"unicode_decimal": 59137
},
{
"icon_id": "31175965",
"name": "配发管理",
"font_class": "peifaguanli",
"unicode": "e702",
"unicode_decimal": 59138
},
{
"icon_id": "31175966",
"name": "公私钥对资源",
"font_class": "gongsiyueduiziyuan",
"unicode": "e707",
"unicode_decimal": 59143
},
{
"icon_id": "31175967",
"name": "软件资源",
"font_class": "ruanjianziyuan",
"unicode": "e709",
"unicode_decimal": 59145
},
{
"icon_id": "31175968",
"name": "算法参数资源",
"font_class": "suanfacanshuziyuan",
"unicode": "e70a",
"unicode_decimal": 59146
},
{
"icon_id": "31175969",
"name": "型号管理",
"font_class": "xinghaoguanli",
"unicode": "e70b",
"unicode_decimal": 59147
},
{
"icon_id": "31175970",
"name": "信息查询",
"font_class": "xinxichaxun",
"unicode": "e70d",
"unicode_decimal": 59149
},
{
"icon_id": "31175971",
"name": "信息统计",
"font_class": "xinxitongji",
"unicode": "e70e",
"unicode_decimal": 59150
},
{
"icon_id": "31175972",
"name": "预制资源",
"font_class": "yuzhiziyuan",
"unicode": "e712",
"unicode_decimal": 59154
},
{
"icon_id": "31175973",
"name": "注册登记",
"font_class": "zhucedengji",
"unicode": "e713",
"unicode_decimal": 59155
},
{
"icon_id": "31175976",
"name": "算法逻辑资源",
"font_class": "suanfaluojiziyuan",
"unicode": "e714",
"unicode_decimal": 59156
},
{
"icon_id": "31169140",
"name": "导入资源文件",
"font_class": "daoruziyuanwenjian",
"unicode": "e6ff",
"unicode_decimal": 59135
},
{
"icon_id": "31169141",
"name": "收起",
"font_class": "shouqi",
"unicode": "e700",
"unicode_decimal": 59136
},
{
"icon_id": "31169144",
"name": "关闭",
"font_class": "guanbi",
"unicode": "e703",
"unicode_decimal": 59139
},
{
"icon_id": "31169145",
"name": "搜索",
"font_class": "sousuo",
"unicode": "e704",
"unicode_decimal": 59140
},
{
"icon_id": "31169146",
"name": "删除装备型号",
"font_class": "shanchuzhuangbeixinghao",
"unicode": "e705",
"unicode_decimal": 59141
},
{
"icon_id": "31169147",
"name": "刷新 (2)",
"font_class": "a-shuaxin2",
"unicode": "e706",
"unicode_decimal": 59142
},
{
"icon_id": "31169149",
"name": "添加",
"font_class": "tianjia",
"unicode": "e708",
"unicode_decimal": 59144
},
{
"icon_id": "31169153",
"name": "下拉",
"font_class": "xiala",
"unicode": "e70c",
"unicode_decimal": 59148
},
{
"icon_id": "31169156",
"name": "修改库存底线",
"font_class": "xiugaikucundixian",
"unicode": "e70f",
"unicode_decimal": 59151
},
{
"icon_id": "31169157",
"name": "退出 ",
"font_class": "tuichu",
"unicode": "e710",
"unicode_decimal": 59152
},
{
"icon_id": "31169158",
"name": "重置",
"font_class": "zhongzhi",
"unicode": "e711",
"unicode_decimal": 59153
},
{
"icon_id": "31164284",
"name": "箭头",

@ -14,6 +14,54 @@
/>
<missing-glyph />
<glyph glyph-name="a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi1" unicode="&#59157;" d="M819.2 515.072c16.384-32.768 28.672-69.632 28.672-110.592 0-57.344-20.48-110.592-57.344-151.552-4.096-4.096-4.096-12.288 0-20.48l40.96-69.632c4.096-4.096 8.192-8.192 16.384-8.192h20.48c73.728 0 135.168-61.44 131.072-131.072 0-69.632-61.44-126.976-131.072-131.072-73.728 0-135.168 57.344-135.168 131.072 0 40.96 16.384 73.728 45.056 98.304l-40.96 69.632c-4.096 8.192-12.288 8.192-20.48 8.192-28.672-16.384-65.536-24.576-102.4-24.576-28.672 0-53.248 4.096-77.824 12.288-8.192 4.096-16.384 0-20.48-8.192l-24.576-40.96c-4.096-4.096-4.096-12.288 0-16.384 16.384-20.48 24.576-49.152 24.576-77.824 0-69.632-61.44-131.072-131.072-131.072-73.728 0-135.168 57.344-135.168 131.072 0 69.632 61.44 131.072 131.072 131.072 12.288 0 24.576 0 36.864-4.096 8.192-4.096 16.384 0 20.48 8.192l24.576 36.864c4.096 8.192 4.096 16.384-4.096 20.48-36.864 32.768-61.44 73.728-69.632 122.88 0 8.192-8.192 12.288-16.384 12.288H274.432c-8.192 0-12.288-4.096-16.384-12.288-16.384-53.248-65.536-90.112-126.976-90.112C57.344 273.408 0 330.752 0 404.48c0 73.728 61.44 131.072 135.168 131.072 57.344 0 102.4-36.864 122.88-86.016 4.096-8.192 8.192-12.288 16.384-12.288h98.304c8.192 0 16.384 4.096 16.384 12.288 12.288 57.344 45.056 102.4 86.016 135.168 8.192 4.096 8.192 12.288 4.096 20.48l-4.096 4.096c-4.096 4.096-12.288 8.192-16.384 8.192-8.192 0-20.48-4.096-28.672-4.096-73.728 0-131.072 61.44-131.072 131.072C299.008 818.176 360.448 875.52 434.176 875.52c73.728 0 131.072-57.344 131.072-131.072 0-32.768-12.288-61.44-28.672-86.016-4.096-4.096-4.096-12.288 0-20.48l8.192-12.288c4.096-8.192 12.288-8.192 16.384-8.192 16.384 4.096 36.864 8.192 57.344 8.192 53.248 0 102.4-16.384 143.36-49.152 8.192-4.096 16.384-4.096 20.48 0l24.576 24.576c4.096 4.096 8.192 12.288 4.096 16.384-8.192 16.384-12.288 32.768-12.288 53.248C798.72 756.736 860.16 814.08 929.792 814.08 1003.52 814.08 1064.96 756.736 1064.96 683.008c0-73.728-61.44-131.072-135.168-131.072-20.48 0-40.96 4.096-61.44 12.288-8.192 4.096-12.288 0-20.48-4.096l-28.672-28.672s-4.096-8.192 0-16.384z" horiz-adv-x="1064" />
<glyph glyph-name="a-dashujushujujiegouguanxiguanxifenxigongtonglianxirenzuzhi" unicode="&#58988;" d="M819.2 515.072c16.384-32.768 28.672-69.632 28.672-110.592 0-57.344-20.48-110.592-57.344-151.552-4.096-4.096-4.096-12.288 0-20.48l40.96-69.632c4.096-4.096 8.192-8.192 16.384-8.192h20.48c73.728 0 135.168-61.44 131.072-131.072 0-69.632-61.44-126.976-131.072-131.072-73.728 0-135.168 57.344-135.168 131.072 0 40.96 16.384 73.728 45.056 98.304l-40.96 69.632c-4.096 8.192-12.288 8.192-20.48 8.192-28.672-16.384-65.536-24.576-102.4-24.576-28.672 0-53.248 4.096-77.824 12.288-8.192 4.096-16.384 0-20.48-8.192l-24.576-40.96c-4.096-4.096-4.096-12.288 0-16.384 16.384-20.48 24.576-49.152 24.576-77.824 0-69.632-61.44-131.072-131.072-131.072-73.728 0-135.168 57.344-135.168 131.072 0 69.632 61.44 131.072 131.072 131.072 12.288 0 24.576 0 36.864-4.096 8.192-4.096 16.384 0 20.48 8.192l24.576 36.864c4.096 8.192 4.096 16.384-4.096 20.48-36.864 32.768-61.44 73.728-69.632 122.88 0 8.192-8.192 12.288-16.384 12.288H274.432c-8.192 0-12.288-4.096-16.384-12.288-16.384-53.248-65.536-90.112-126.976-90.112C57.344 273.408 0 330.752 0 404.48c0 73.728 61.44 131.072 135.168 131.072 57.344 0 102.4-36.864 122.88-86.016 4.096-8.192 8.192-12.288 16.384-12.288h98.304c8.192 0 16.384 4.096 16.384 12.288 12.288 57.344 45.056 102.4 86.016 135.168 8.192 4.096 8.192 12.288 4.096 20.48l-4.096 4.096c-4.096 4.096-12.288 8.192-16.384 8.192-8.192 0-20.48-4.096-28.672-4.096-73.728 0-131.072 61.44-131.072 131.072C299.008 818.176 360.448 875.52 434.176 875.52c73.728 0 131.072-57.344 131.072-131.072 0-32.768-12.288-61.44-28.672-86.016-4.096-4.096-4.096-12.288 0-20.48l8.192-12.288c4.096-8.192 12.288-8.192 16.384-8.192 16.384 4.096 36.864 8.192 57.344 8.192 53.248 0 102.4-16.384 143.36-49.152 8.192-4.096 16.384-4.096 20.48 0l24.576 24.576c4.096 4.096 8.192 12.288 4.096 16.384-8.192 16.384-12.288 32.768-12.288 53.248C798.72 756.736 860.16 814.08 929.792 814.08 1003.52 814.08 1064.96 756.736 1064.96 683.008c0-73.728-61.44-131.072-135.168-131.072-20.48 0-40.96 4.096-61.44 12.288-8.192 4.096-12.288 0-20.48-4.096l-28.672-28.672s-4.096-8.192 0-16.384z" horiz-adv-x="1064" />
<glyph glyph-name="changshangxinxiguanli" unicode="&#59137;" d="M467.2 652.8L332.8 896H0v-985.6h1024V652.8H467.2z m460.8-646.4h-832V800h179.2l128-243.2h524.8v-550.4zM512 844.8h448v-96H512z" horiz-adv-x="1024" />
<glyph glyph-name="peifaguanli" unicode="&#59138;" d="M332.8 780.8V896H243.2v-115.2H0v-89.6h243.2V576h89.6V691.2H1024V780.8zM332.8 192H243.2v-115.2H0v-89.6h243.2V-128h89.6v115.2H1024v89.6H332.8zM844.8 544h-89.6v-108.8H0v-102.4h755.2v-108.8h89.6V332.8H1024V435.2h-179.2z" horiz-adv-x="1024" />
<glyph glyph-name="gongsiyueduiziyuan" unicode="&#59143;" d="M1024 576c0 179.2-140.8 320-320 320S384 755.2 384 576c0-70.4 25.6-134.4 64-185.6l-121.6-185.6-96 64-57.6-76.8 96-64-57.6-89.6-102.4 70.4-57.6-76.8 179.2-128L512 320c44.8-32 102.4-57.6 160-57.6V192H550.4v-96h121.6v-108.8H550.4v-96H768V262.4c147.2 32 256 160 256 313.6z m-320-224C582.4 352 480 454.4 480 576S582.4 800 704 800s224-102.4 224-224-102.4-224-224-224z" horiz-adv-x="1024" />
<glyph glyph-name="ruanjianziyuan" unicode="&#59145;" d="M960 896H64C25.6 896 0 851.2 0 800v-838.4c0-44.8 25.6-89.6 64-89.6h896c38.4 0 64 44.8 64 96v832c0 51.2-25.6 96-64 96z m-32-928h-832V524.8h832v-556.8zM96 627.2V800h832v-179.2h-832zM332.8 256l-102.4-102.4c-12.8-12.8-12.8-38.4 0-51.2 6.4-6.4 19.2-12.8 25.6-12.8s19.2 6.4 25.6 12.8l128 128c12.8 12.8 12.8 38.4 0 51.2l-128 128c-12.8 12.8-38.4 12.8-51.2 0s-12.8-38.4 0-51.2L332.8 256zM512 217.6h192c19.2 0 38.4 19.2 38.4 38.4s-19.2 38.4-38.4 38.4H512c-19.2 0-38.4-19.2-38.4-38.4s19.2-38.4 38.4-38.4z" horiz-adv-x="1024" />
<glyph glyph-name="suanfacanshuziyuan" unicode="&#59146;" d="M460.8 716.8L332.8 896H0v-992h1024V716.8H460.8z m96-633.6h140.8l32-76.8H524.8l32 76.8z m32 76.8l38.4 102.4 38.4-102.4H588.8z m339.2-153.6h-115.2L665.6 384c-6.4 12.8-19.2 25.6-38.4 25.6s-32-12.8-38.4-25.6L448 6.4H96V428.8h832v-422.4z m-832 518.4V800h185.6l134.4-179.2h512v-96h-832z" horiz-adv-x="1024" />
<glyph glyph-name="xinghaoguanli" unicode="&#59147;" d="M1017.6 896H0v-1024h1024l-6.4 1024z m-96-96v-396.8h-832V800h832z m-825.6-832V307.2h832v-332.8h-832zM192 614.4h256v-76.8H192z" horiz-adv-x="1024" />
<glyph glyph-name="xinxichaxun" unicode="&#59149;" d="M960 883.2H64C38.4 883.2 12.8 857.6 12.8 832v-896c0-25.6 19.2-51.2 51.2-51.2h896c25.6 0 51.2 19.2 51.2 51.2V832L960 883.2zM115.2 780.8h800v-748.8l-102.4 102.4c38.4 64 32 140.8-25.6 198.4-64 64-166.4 64-224 0-64-64-64-166.4 0-224 32-32 70.4-44.8 115.2-44.8 25.6 0 57.6 6.4 83.2 25.6l102.4-102.4H115.2V780.8z m614.4-614.4c-32-32-83.2-32-115.2 0s-32 83.2 0 115.2 83.2 32 115.2 0 32-83.2 0-115.2z m153.6-179.2l32 32v-32h-32zM256 652.8h384v-96H256zM256 460.8h192v-96H256z" horiz-adv-x="1024" />
<glyph glyph-name="xinxitongji" unicode="&#59150;" d="M563.2 883.2H512C236.8 883.2 12.8 659.2 12.8 384s224-499.2 499.2-499.2 499.2 224 499.2 499.2v51.2h-448v448z m345.6-550.4c-25.6-198.4-192-352-396.8-352-217.6 0-396.8 179.2-396.8 396.8 0 204.8 153.6 371.2 352 396.8v-448h441.6zM704 883.2h-51.2v-352h352V576C1011.2 742.4 870.4 883.2 704 883.2z m51.2-256V780.8c76.8-19.2 134.4-76.8 153.6-153.6h-153.6z" horiz-adv-x="1024" />
<glyph glyph-name="yuzhiziyuan" unicode="&#59154;" d="M192 524.8c70.4 0 128 38.4 153.6 96H960c25.6 0 51.2 19.2 51.2 51.2s-25.6 44.8-51.2 44.8H364.8C358.4 806.4 281.6 883.2 192 883.2 96 883.2 12.8 800 12.8 704S96 524.8 192 524.8z m0 256c44.8 0 76.8-38.4 76.8-76.8S236.8 627.2 192 627.2 115.2 659.2 115.2 704 147.2 780.8 192 780.8zM960 12.8h-320c-25.6 0-51.2-19.2-51.2-51.2s19.2-51.2 51.2-51.2h320c25.6 0 51.2 19.2 51.2 51.2s-25.6 51.2-51.2 51.2zM960 524.8h-320c-25.6 0-51.2-19.2-51.2-51.2s25.6-38.4 51.2-38.4h320c25.6 0 51.2 19.2 51.2 51.2s-25.6 38.4-51.2 38.4zM960 204.8H364.8C358.4 294.4 281.6 371.2 192 371.2 96 371.2 12.8 294.4 12.8 192s76.8-179.2 179.2-179.2c70.4 0 128 38.4 153.6 96H960c25.6 0 51.2 19.2 51.2 51.2s-25.6 44.8-51.2 44.8zM192 115.2c-44.8 0-76.8 38.4-76.8 76.8S147.2 268.8 192 268.8s76.8-38.4 76.8-76.8-32-76.8-76.8-76.8z" horiz-adv-x="1024" />
<glyph glyph-name="zhucedengji" unicode="&#59155;" d="M0 896v-1024h1170.285714V896H0z m1060.571429-914.285714h-950.857143v804.571428h950.857143v-804.571428zM175.542857 164.571429c0-29.257143 14.628571-80.457143 95.085714-109.714286 43.885714-14.628571 102.4-21.942857 168.228572-21.942857 124.342857 0 263.314286 36.571429 263.314286 131.657143s-51.2 182.857143-131.657143 226.742857c36.571429 36.571429 58.514286 87.771429 58.514285 138.971428 0 102.4-87.771429 190.171429-190.171428 190.171429S248.685714 632.685714 248.685714 530.285714c0-51.2 21.942857-102.4 58.514286-138.971428-80.457143-43.885714-131.657143-131.657143-131.657143-226.742857z m160.914286 365.714285c0 58.514286 43.885714 102.4 102.4 102.4s102.4-43.885714 102.4-102.4S497.371429 427.885714 438.857143 427.885714 336.457143 471.771429 336.457143 530.285714zM438.857143 340.114286c95.085714 0 175.542857-80.457143 175.542857-175.542857 0-14.628571-58.514286-43.885714-175.542857-43.885715s-175.542857 29.257143-175.542857 43.885715c0 95.085714 80.457143 175.542857 175.542857 175.542857zM804.571429 501.028571h146.285714v-87.771428h-146.285714zM804.571429 274.285714h219.428571v-73.142857h-219.428571z" horiz-adv-x="1170" />
<glyph glyph-name="suanfaluojiziyuan" unicode="&#59156;" d="M665.6 684.8c-6.4 0-12.8-6.4-12.8-12.8V640H448c-19.2 0-38.4-19.2-38.4-38.4v-179.2H339.2c-12.8 25.6-38.4 38.4-70.4 38.4C230.4 460.8 192 428.8 192 384s38.4-76.8 76.8-76.8c32 0 57.6 19.2 70.4 38.4h70.4v-179.2c0-19.2 19.2-38.4 38.4-38.4h204.8v-44.8c6.4-6.4 12.8-6.4 19.2-6.4l121.6 76.8s6.4 0 6.4 6.4c6.4 6.4 0 12.8-6.4 19.2L672 256h-6.4c-6.4 0-12.8-6.4-12.8-12.8v-32H486.4V563.2h166.4v-44.8c6.4-6.4 12.8-6.4 19.2-6.4l121.6 76.8s6.4 0 6.4 6.4c6.4 6.4 0 12.8-6.4 19.2l-121.6 76.8c0-6.4 0-6.4-6.4-6.4zM761.6 896H0v-1024h1024V684.8L761.6 896z m166.4-928h-832v832h633.6L928 640v-672z" horiz-adv-x="1024" />
<glyph glyph-name="daoruziyuanwenjian" unicode="&#59135;" d="M5.626374 896h1024v-1024H5.626374zM532.254945-54.857143H108.026374c-14.628571 0-29.257143 14.628571-29.257143 36.571429V808.228571C78.769231 830.171429 93.397802 844.8 108.026374 844.8h833.828571c14.628571 0 29.257143-14.628571 29.257143-36.571429v-468.114285c0-14.628571-14.628571-29.257143-29.257143-29.257143s-29.257143 14.628571-29.257143 36.571428V778.971429H137.283516v-768h394.971429c14.628571 0 29.257143-14.628571 29.257143-36.571429 0-14.628571-7.314286-29.257143-29.257143-29.257143zM685.854945-47.542857c-7.314286 0-14.628571 7.314286-21.942857 7.314286l-131.657143 153.6c-14.628571 14.628571-14.628571 36.571429 0 51.2L663.912088 318.171429c14.628571 14.628571 29.257143 14.628571 43.885714 0 14.628571-14.628571 14.628571-36.571429 0-51.2l-109.714286-124.342858L707.797802 18.285714c14.628571-14.628571 14.628571-36.571429 0-51.2 0-7.314286-7.314286-14.628571-21.942857-14.628571zM941.854945 106.057143H685.854945c-14.628571 0-29.257143 14.628571-29.257143 36.571428s14.628571 36.571429 29.257143 36.571429h256c14.628571 0 29.257143-14.628571 29.257143-36.571429s-14.628571-36.571429-29.257143-36.571428zM751.683516 588.8H305.512088c-21.942857 0-36.571429 14.628571-36.571429 29.257143s14.628571 29.257143 29.257143 29.257143h446.171429c14.628571 0 29.257143-14.628571 29.257143-29.257143s-7.314286-29.257143-21.942858-29.257143z m0-190.171429H305.512088c-14.628571 0-21.942857 7.314286-29.257143 14.628572-7.314286 7.314286-7.314286 21.942857 0 29.257143 7.314286 14.628571 14.628571 14.628571 29.257143 14.628571h446.171428c14.628571 0 29.257143-14.628571 29.257143-29.257143s-14.628571-29.257143-29.257143-29.257143z" horiz-adv-x="1102" />
<glyph glyph-name="shouqi" unicode="&#59136;" d="M34.129408-89.316022A119.45293 119.45293 0 0 1 127.473341-127.882254l1276.439876 9.726882a119.45293 119.45293 0 0 1 93.514579 38.566231 153.582338 153.582338 0 0 1 0 202.899334L859.378505 847.706887c-8.532352 9.726881-25.597056 19.283116-34.129409 29.009997l-8.532352 9.556235a121.330047 121.330047 0 0 1-136.005692-29.009998L42.491114 123.48084A167.234101 167.234101 0 0 1 34.129408-89.316022z" horiz-adv-x="1535" />
<glyph glyph-name="guanbi" unicode="&#59139;" d="M59.026286-122.002286a58.075429 58.075429 0 0 0-40.96 99.035429L919.698286 878.665143a58.075429 58.075429 0 0 0 81.92-81.993143L100.059429-104.96a57.782857 57.782857 0 0 0-40.96-17.042286zM960.731429-122.002286a57.782857 57.782857 0 0 0-40.96 17.042286L17.993143 796.745143A58.075429 58.075429 0 0 0 99.986286 878.665143l901.778285-901.705143a58.075429 58.075429 0 0 0-40.96-98.962286z" horiz-adv-x="1024" />
<glyph glyph-name="sousuo" unicode="&#59140;" d="M1010.802237-65.439517l-161.69033 160.154601c86.585867 85.927697 138.581265 200.376077 138.581264 326.305859 0 263.267838-219.462995 474.979057-490.921387 474.979057C225.240261 896 0 684.215651 0 421.020943c0-263.267838 219.462995-475.052187 490.994517-475.052187 109.694932 0 213.685728 34.371079 300.344725 97.26284l167.467597-160.154602c17.331799-11.481403 40.440865-17.258669 51.995398 0 17.331799 17.112409 17.331799 40.002085 0 51.483489zM80.88173 421.020943c0 223.192622 184.799396 400.605893 415.890054 400.605893 231.017528 0 415.890054-183.190537 415.890054-400.605893 0-217.488486-184.872526-400.679023-415.890054-400.679023-231.090658 0-415.890054 183.190537-415.890054 400.679023z" horiz-adv-x="1024" />
<glyph glyph-name="shanchuzhuangbeixinghao" unicode="&#59141;" d="M0 676.571429h1024v-73.142858H0zM899.657143-128H124.342857V618.057143h73.142857V-54.857143h629.028572V618.057143h73.142857V-128zM292.571429 896h438.857142v-73.142857H292.571429V896zM358.4 618.057143h73.142857v-709.485714h-73.142857V618.057143z m234.057143 0h73.142857v-709.485714h-73.142857V618.057143z" horiz-adv-x="1024" />
<glyph glyph-name="a-shuaxin2" unicode="&#59142;" d="M219.258665 871.581244a36.713335 36.713335 0 0 1 22.159642-46.805845l79.204267-28.376044A476.030074 476.030074 0 0 1 131.132034 643.622151c-156.872716-212.600925-114.089248-515.59564 95.586313-675.02805a467.765916 467.765916 0 0 1 352.067717-91.710204 471.203221 471.203221 0 0 1 313.8917 188.539796A485.610645 485.610645 0 0 1 987.313333 353.937849a484.221096 484.221096 0 0 1-190.148747 386.660163A467.180843 467.180843 0 0 1 613.890448 825.799277a36.713335 36.713335 0 0 1-15.650704-71.671451 393.461637 393.461637 0 0 0 154.82496-71.890853c177.789078-135.151878 214.063608-392.437759 80.740083-573.005934a398.069087 398.069087 0 0 0-265.476904-159.578679 394.631783 394.631783 0 0 0-297.43652 77.522181C93.102285 162.107017 56.608353 419.027227 189.931877 599.887939A403.115343 403.115343 0 0 0 380.300026 740.890548l-48.999869-126.083246a36.567067 36.567067 0 1 1 68.234146-26.767093l72.256524 185.760699a35.250652 35.250652 0 0 1 2.559695 13.383546l-0.146268 1.75522c0.146268 1.389549 0.731341 2.779097 0.731341 4.095511a36.786469 36.786469 0 0 1-24.280532 34.665579L266.503315 893.814021A37.079006 37.079006 0 0 1 219.404933 871.581244h-0.073134z" horiz-adv-x="1024" />
<glyph glyph-name="tianjia" unicode="&#59144;" d="M1022.390857 424.082286H550.546286V896H471.917714v-471.917714H0v-78.628572h471.917714v-471.844571h78.628572V345.453714h471.844571z" horiz-adv-x="1024" />
<glyph glyph-name="xiala" unicode="&#59148;" d="M34.277832 857.31438A119.452731 119.452731 0 0 0 127.621608 895.880547l1276.437749-9.726865a119.452731 119.452731 0 0 0 93.514423-38.566167c51.023381-58.019898 51.023381-145.049744 0-202.898995l-638.218874-724.395488c-8.532338-9.726865-25.597014-19.283084-34.129352-29.009948l-8.532338-9.556219a121.329845 121.329845 0 0 0-136.005466 29.009949L42.639523 644.517873A167.233823 167.233823 0 0 0 34.277832 857.31438z" horiz-adv-x="1536" />
<glyph glyph-name="xiugaikucundixian" unicode="&#59151;" d="M1012.736-128H0V873.472h599.844571V796.525714H77.897143v-847.433143h856.941714V495.981714h77.897143zM370.322286 176.493714L416.914286 439.588571 790.528 896 1024 702.610286l-365.714286-441.051429-287.963428-85.065143z m124.489143 232.155429l-23.405715-123.830857 140.141715 38.765714 303.542857 363.52-108.982857 100.571429-311.296-379.026286z m-303.542858-301.714286h661.504v-77.385143H191.268571v77.385143z" horiz-adv-x="1024" />
<glyph glyph-name="tuichu" unicode="&#59152;" d="M811.902537 803.913143C784.620251 827.977143 750.462537 827.977143 726.47168 810.788571c-27.355429-17.115429-37.595429-44.617143-30.72-75.410285 0-27.428571 20.48-41.106286 40.96-54.857143 143.579429-113.005714 184.612571-301.421714 99.181714-465.92-75.264-143.872-246.198857-222.646857-403.456-188.416-160.621714 34.230857-283.721143 181.613714-287.158857 346.038857-3.364571 126.756571 44.470857 229.522286 147.017143 308.370286 37.595429 30.793143 44.470857 75.337143 17.115429 106.203428-27.355429 34.230857-68.388571 37.668571-109.421715 6.875429C29.054537 660.041143-42.698606 427.008 25.616823 228.205714 94.005394 15.945143 288.931109-128 511.139109-128c280.283429 0 512.731429 226.157714 512.731428 510.537143 3.437714 174.738286-71.753143 315.172571-211.968 421.376zM489.854537 315.245714c50.907429-17.115429 95.085714 17.261714 95.085714 75.629715V813.568C588.304823 865.060571 557.731109 896 513.47968 896 472.812251 896 442.238537 865.060571 438.873966 820.370286v-432.932572c3.364571-37.814857 23.771429-61.878857 50.980571-72.192z" horiz-adv-x="1024" />
<glyph glyph-name="zhongzhi" unicode="&#59153;" d="M1011.858286 316.196571c19.236571 134.363429-6.363429 256-89.6 364.763429C826.294857 821.76 583.094857 930.596571 474.258286 885.76c6.436571-25.6 6.436571-44.763429 12.8-70.363429 262.436571 0 428.836571-185.636571 448-371.2 19.236571-179.2-89.6-371.2-249.563429-428.836571V194.56c0 25.6-12.8 38.4-32.036571 38.4-38.4 0-51.2-12.8-38.4-57.563429 12.8-70.436571 6.436571-140.8 0-211.236571 0-38.4 19.236571-31.963429 64-31.963429h160.036571c83.163429 0 95.963429-12.8 95.963429 31.963429 0 25.6-6.363429 38.4-38.4 38.4h-70.363429c95.963429 76.8 166.4 179.2 185.563429 313.636571zM71.094857 399.36c0 153.6 115.2 345.6 223.963429 364.836571v-153.6c0-32.036571 6.436571-38.4 38.4-38.4 32.036571 0 38.4 6.363429 38.4 38.4V847.36c0 32.036571-6.363429 38.4-38.4 38.4H96.694857C64.658286 885.76 58.294857 879.396571 58.294857 847.36c0-31.963429 0-38.4 38.4-38.4h102.4C-31.305143 623.396571-44.105143 341.796571 71.094857 149.796571c108.763429-185.636571 326.363429-256 460.8-236.836571-6.436571 25.6-6.436571 44.836571-12.8 70.436571C243.858286-23.04 71.094857 200.996571 71.094857 399.36z" horiz-adv-x="1024" />
<glyph glyph-name="jiantou" unicode="&#58987;" d="M1626.352941 305.694118L1014.964706-91.858824c-51.2-33.129412-123.482353-24.094118-162.635294 18.070589-15.058824 18.070588-24.094118 39.152941-24.094118 60.235294V781.552941C828.235294 835.764706 879.435294 880.941176 945.694118 880.941176c24.094118 0 51.2-6.023529 69.270588-21.082352L1626.352941 462.305882c51.2-33.129412 60.235294-96.376471 21.082353-138.541176-6.023529-6.023529-12.047059-12.047059-21.082353-18.070588zM60.235294 564.705882h843.294118v-361.411764H60.235294c-33.129412 0-60.235294 27.105882-60.235294 60.235294v240.941176c0 33.129412 27.105882 60.235294 60.235294 60.235294z" horiz-adv-x="1686" />
<glyph glyph-name="bianzu" unicode="&#58975;" d="M524.8 134.4H512l-12.8-6.4-6.4 12.8-492.8 192 51.2 121.6L512 281.6l460.8 172.8 51.2-121.6-492.8-185.6-6.4-12.8z m-12.8 256l-512 192V697.6l512 192 512-192v-115.2l-512-192z m0 358.4L198.4 646.4 512 537.6l313.6 108.8L512 748.8zM51.2 198.4L512 25.6l460.8 172.8 51.2-121.6-492.8-185.6-6.4-12.8H512l-12.8-6.4-6.4 12.8-492.8 192 51.2 121.6z" horiz-adv-x="1024" />

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save