import React, { useState, useMemo } from 'react'; import { Tag, Typography, Input, Checkbox, message } from 'antd'; import { CheckboxChangeEvent } from 'antd/es/checkbox'; import { CheckOutlined } from '@ant-design/icons'; // @ts-ignore import { useModel } from 'umi'; import HeaderDropdown from '../HeaderDropdown'; import styles from './index.less'; const defaultTestService = 'http://localhost:8080'; // 环境标志 const ENVTagColor = { dev: 'orange', qa: 'green', uat: '#87d068', }; const EnvTag: React.FC = () => { const { env, setApiPrefix, getApiPrefix } = useModel('system'); const defaultPrefix = useMemo(() => getApiPrefix(), []); const [lock, setLock] = useState(false); const [prefix, setPrefix] = useState(defaultTestService + defaultPrefix); const [visible, setVisible] = useState(false); // 生产环境不显示标志 if (env === 'prod') { return null; } const apply = (e: CheckboxChangeEvent) => { const { checked } = e.target; // check if (checked && !/^http:\/\//.test(prefix)) { message.error('无效的请求地址格式'); return; } setLock(checked); setApiPrefix(checked ? prefix : defaultPrefix); }; const content = (