|
|
import "antd/es/drawer/style";
|
|
|
import _Drawer from "antd/es/drawer";
|
|
|
import "antd/es/button/style";
|
|
|
import _Button from "antd/es/button";
|
|
|
import "antd/es/alert/style";
|
|
|
import _Alert from "antd/es/alert";
|
|
|
import "antd/es/list/style";
|
|
|
import _List from "antd/es/list";
|
|
|
import "antd/es/switch/style";
|
|
|
import _Switch from "antd/es/switch";
|
|
|
import "antd/es/divider/style";
|
|
|
import _Divider from "antd/es/divider";
|
|
|
import "antd/es/message/style";
|
|
|
import _message from "antd/es/message";
|
|
|
|
|
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
|
|
|
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
|
|
|
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
|
|
|
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
|
|
|
|
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
|
|
|
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
|
|
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
|
|
|
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
|
|
|
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
|
|
|
|
import './index.less';
|
|
|
import { CopyOutlined, CloseOutlined, NotificationOutlined, SettingOutlined } from '@ant-design/icons';
|
|
|
import { isBrowser } from '@ant-design/pro-utils';
|
|
|
import { createBrowserHistory } from 'history';
|
|
|
import { stringify, parse } from 'qs';
|
|
|
import React, { useState, useEffect, useRef } from 'react';
|
|
|
import CopyToClipboard from 'react-copy-to-clipboard';
|
|
|
import useMergedState from 'rc-util/lib/hooks/useMergedState';
|
|
|
import omit from 'omit.js';
|
|
|
import defaultSettings from '../defaultSettings';
|
|
|
import BlockCheckbox from './BlockCheckbox';
|
|
|
import ThemeColor from './ThemeColor';
|
|
|
import getLocales, { getLanguage } from '../locales';
|
|
|
import { genStringToTheme } from '../utils/utils';
|
|
|
import LayoutSetting, { renderLayoutSettingItem } from './LayoutChange';
|
|
|
import RegionalSetting from './RegionalChange';
|
|
|
|
|
|
var Body = function Body(_ref) {
|
|
|
var children = _ref.children,
|
|
|
prefixCls = _ref.prefixCls,
|
|
|
title = _ref.title;
|
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
|
style: {
|
|
|
marginBottom: 24
|
|
|
}
|
|
|
}, /*#__PURE__*/React.createElement("h3", {
|
|
|
className: "".concat(prefixCls, "-drawer-title")
|
|
|
}, title), children);
|
|
|
};
|
|
|
|
|
|
var oldSetting = {};
|
|
|
|
|
|
var getDifferentSetting = function getDifferentSetting(state) {
|
|
|
var stateObj = {};
|
|
|
Object.keys(state).forEach(function (key) {
|
|
|
if (state[key] !== oldSetting[key] && key !== 'collapse') {
|
|
|
stateObj[key] = state[key];
|
|
|
}
|
|
|
|
|
|
if (key.includes('Render')) {
|
|
|
stateObj[key] = state[key] === 'false' || state[key] === false ? false : undefined;
|
|
|
}
|
|
|
});
|
|
|
delete stateObj.menu;
|
|
|
return stateObj;
|
|
|
};
|
|
|
|
|
|
export var getFormatMessage = function getFormatMessage() {
|
|
|
var formatMessage = function formatMessage(_ref2) {
|
|
|
var id = _ref2.id,
|
|
|
defaultMessage = _ref2.defaultMessage;
|
|
|
var locales = getLocales();
|
|
|
|
|
|
if (locales[id]) {
|
|
|
return locales[id];
|
|
|
}
|
|
|
|
|
|
if (defaultMessage) {
|
|
|
return defaultMessage;
|
|
|
}
|
|
|
|
|
|
return id;
|
|
|
};
|
|
|
|
|
|
return formatMessage;
|
|
|
};
|
|
|
|
|
|
var updateTheme = function updateTheme(dark, color) {
|
|
|
var hideMessageLoading = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
|
var publicPath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/theme';
|
|
|
|
|
|
// ssr
|
|
|
if (typeof window === 'undefined' || !window.umi_plugin_ant_themeVar) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var formatMessage = getFormatMessage();
|
|
|
|
|
|
var hide = function hide() {
|
|
|
return null;
|
|
|
};
|
|
|
|
|
|
if (!hideMessageLoading) {
|
|
|
hide = _message.loading(formatMessage({
|
|
|
id: 'app.setting.loading',
|
|
|
defaultMessage: '正在加载主题'
|
|
|
}));
|
|
|
}
|
|
|
|
|
|
var href = dark ? "".concat(publicPath, "/dark") : "".concat(publicPath, "/"); // 如果是 dark,并且是 color=daybreak,无需进行拼接
|
|
|
|
|
|
var colorFileName = dark && color ? "-".concat(encodeURIComponent(color)) : encodeURIComponent(color || '');
|
|
|
|
|
|
if (color === 'daybreak' && dark) {
|
|
|
colorFileName = '';
|
|
|
}
|
|
|
|
|
|
var dom = document.getElementById('theme-style'); // 如果这两个都是空
|
|
|
|
|
|
if (!href && !colorFileName) {
|
|
|
if (dom) {
|
|
|
dom.remove();
|
|
|
localStorage.removeItem('site-theme');
|
|
|
}
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var url = "".concat(href).concat(colorFileName || '', ".css");
|
|
|
|
|
|
if (dom) {
|
|
|
dom.onload = function () {
|
|
|
window.setTimeout(function () {
|
|
|
hide();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
dom.href = url;
|
|
|
} else {
|
|
|
var style = document.createElement('link');
|
|
|
style.type = 'text/css';
|
|
|
style.rel = 'stylesheet';
|
|
|
style.id = 'theme-style';
|
|
|
|
|
|
style.onload = function () {
|
|
|
window.setTimeout(function () {
|
|
|
hide();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
style.href = url;
|
|
|
|
|
|
if (document.body.append) {
|
|
|
document.body.append(style);
|
|
|
} else {
|
|
|
document.body.appendChild(style);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
localStorage.setItem('site-theme', dark ? 'dark' : 'light');
|
|
|
};
|
|
|
|
|
|
var getThemeList = function getThemeList(settings) {
|
|
|
var formatMessage = getFormatMessage();
|
|
|
var list = window.umi_plugin_ant_themeVar || [];
|
|
|
var themeList = [{
|
|
|
key: 'light',
|
|
|
url: 'https://gw.alipayobjects.com/zos/antfincdn/NQ%24zoisaD2/jpRkZQMyYRryryPNtyIC.svg',
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.pagestyle.light'
|
|
|
})
|
|
|
}];
|
|
|
var darkColorList = [{
|
|
|
key: 'daybreak',
|
|
|
color: '#1890ff',
|
|
|
theme: 'dark'
|
|
|
}];
|
|
|
var lightColorList = [{
|
|
|
key: 'daybreak',
|
|
|
color: '#1890ff',
|
|
|
theme: 'dark'
|
|
|
}];
|
|
|
|
|
|
if (settings.layout !== 'mix') {
|
|
|
themeList.push({
|
|
|
key: 'dark',
|
|
|
url: 'https://gw.alipayobjects.com/zos/antfincdn/XwFOFbLkSM/LCkqqYNmvBEbokSDscrm.svg',
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.pagestyle.dark',
|
|
|
defaultMessage: ''
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
|
|
|
if (list.find(function (item) {
|
|
|
return item.theme === 'dark';
|
|
|
})) {
|
|
|
themeList.push({
|
|
|
key: 'realDark',
|
|
|
url: 'https://gw.alipayobjects.com/zos/antfincdn/hmKaLQvmY2/LCkqqYNmvBEbokSDscrm.svg',
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.pagestyle.dark',
|
|
|
defaultMessage: ''
|
|
|
})
|
|
|
});
|
|
|
} // insert theme color List
|
|
|
|
|
|
|
|
|
list.forEach(function (item) {
|
|
|
var color = (item.modifyVars || {})['@primary-color'];
|
|
|
|
|
|
if (item.theme === 'dark' && color) {
|
|
|
darkColorList.push(_objectSpread({
|
|
|
color: color
|
|
|
}, item));
|
|
|
}
|
|
|
|
|
|
if (!item.theme || item.theme === 'light') {
|
|
|
lightColorList.push(_objectSpread({
|
|
|
color: color
|
|
|
}, item));
|
|
|
}
|
|
|
});
|
|
|
return {
|
|
|
colorList: {
|
|
|
dark: darkColorList,
|
|
|
light: lightColorList
|
|
|
},
|
|
|
themeList: themeList
|
|
|
};
|
|
|
};
|
|
|
/**
|
|
|
* 初始化的时候需要做的工作
|
|
|
* @param param0
|
|
|
*/
|
|
|
|
|
|
|
|
|
var initState = function initState(settings, onSettingChange, publicPath) {
|
|
|
if (!isBrowser()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var loadedStyle = false;
|
|
|
|
|
|
if (window.location.search) {
|
|
|
var params = parse(window.location.search.replace('?', ''));
|
|
|
var replaceSetting = {};
|
|
|
Object.keys(params).forEach(function (key) {
|
|
|
if (defaultSettings[key] || defaultSettings[key] === undefined) {
|
|
|
replaceSetting[key] = params[key];
|
|
|
|
|
|
if (key.includes('Render')) {
|
|
|
replaceSetting[key] = params[key] === 'false' ? false : undefined;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
if (onSettingChange) {
|
|
|
onSettingChange(_objectSpread(_objectSpread({}, settings), replaceSetting));
|
|
|
} // 如果 url 中设置主题,进行一次加载。
|
|
|
|
|
|
|
|
|
if (oldSetting.navTheme !== params.navTheme && params.navTheme) {
|
|
|
updateTheme(settings.navTheme === 'realDark', params.primaryColor, true, publicPath);
|
|
|
loadedStyle = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (loadedStyle) {
|
|
|
return;
|
|
|
} // 如果 url 中没有设置主题,并且 url 中的没有加载,进行一次加载。
|
|
|
|
|
|
|
|
|
if (defaultSettings.navTheme !== settings.navTheme && settings.navTheme) {
|
|
|
updateTheme(settings.navTheme === 'realDark', settings.primaryColor, true, publicPath);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
var getParamsFromUrl = function getParamsFromUrl(settings) {
|
|
|
if (!isBrowser()) {
|
|
|
return defaultSettings;
|
|
|
} // 第一次进入与 浏览器参数同步一下
|
|
|
|
|
|
|
|
|
var params = {};
|
|
|
|
|
|
if (window.location.search) {
|
|
|
params = parse(window.location.search.replace('?', ''));
|
|
|
}
|
|
|
|
|
|
return _objectSpread(_objectSpread(_objectSpread({}, defaultSettings), settings || {}), params);
|
|
|
};
|
|
|
|
|
|
var genCopySettingJson = function genCopySettingJson(settingState) {
|
|
|
return JSON.stringify(omit(_objectSpread(_objectSpread({}, settingState), {}, {
|
|
|
primaryColor: genStringToTheme(settingState.primaryColor)
|
|
|
}), ['colorWeak']), null, 2);
|
|
|
};
|
|
|
/**
|
|
|
* 可视化配置组件
|
|
|
* @param props
|
|
|
*/
|
|
|
|
|
|
|
|
|
var SettingDrawer = function SettingDrawer(props) {
|
|
|
var _props$settings = props.settings,
|
|
|
propsSettings = _props$settings === void 0 ? undefined : _props$settings,
|
|
|
_props$hideLoading = props.hideLoading,
|
|
|
hideLoading = _props$hideLoading === void 0 ? false : _props$hideLoading,
|
|
|
hideColors = props.hideColors,
|
|
|
hideHintAlert = props.hideHintAlert,
|
|
|
hideCopyButton = props.hideCopyButton,
|
|
|
getContainer = props.getContainer,
|
|
|
onSettingChange = props.onSettingChange,
|
|
|
_props$prefixCls = props.prefixCls,
|
|
|
prefixCls = _props$prefixCls === void 0 ? 'ant-pro' : _props$prefixCls;
|
|
|
var firstRender = useRef(true);
|
|
|
|
|
|
var _useMergedState = useMergedState(false, {
|
|
|
value: props.collapse,
|
|
|
onChange: props.onCollapseChange
|
|
|
}),
|
|
|
_useMergedState2 = _slicedToArray(_useMergedState, 2),
|
|
|
show = _useMergedState2[0],
|
|
|
setShow = _useMergedState2[1];
|
|
|
|
|
|
var _useState = useState(getLanguage()),
|
|
|
_useState2 = _slicedToArray(_useState, 2),
|
|
|
language = _useState2[0],
|
|
|
setLanguage = _useState2[1];
|
|
|
|
|
|
var _useMergedState3 = useMergedState(function () {
|
|
|
return getParamsFromUrl(propsSettings);
|
|
|
}, {
|
|
|
value: propsSettings,
|
|
|
onChange: onSettingChange
|
|
|
}),
|
|
|
_useMergedState4 = _slicedToArray(_useMergedState3, 2),
|
|
|
settingState = _useMergedState4[0],
|
|
|
setSettingState = _useMergedState4[1];
|
|
|
|
|
|
var preStateRef = useRef(settingState);
|
|
|
|
|
|
var _ref3 = settingState || {},
|
|
|
_ref3$navTheme = _ref3.navTheme,
|
|
|
navTheme = _ref3$navTheme === void 0 ? 'dark' : _ref3$navTheme,
|
|
|
_ref3$primaryColor = _ref3.primaryColor,
|
|
|
primaryColor = _ref3$primaryColor === void 0 ? 'daybreak' : _ref3$primaryColor,
|
|
|
_ref3$layout = _ref3.layout,
|
|
|
layout = _ref3$layout === void 0 ? 'sidemenu' : _ref3$layout,
|
|
|
colorWeak = _ref3.colorWeak;
|
|
|
|
|
|
useEffect(function () {
|
|
|
// 语言修改,这个是和 locale 是配置起来的
|
|
|
var onLanguageChange = function onLanguageChange() {
|
|
|
if (language !== getLanguage()) {
|
|
|
setLanguage(getLanguage());
|
|
|
}
|
|
|
}; // 记住默认的选择,方便做 diff,然后保存到 url 参数中
|
|
|
|
|
|
|
|
|
oldSetting = _objectSpread(_objectSpread({}, defaultSettings), propsSettings);
|
|
|
/**
|
|
|
* 如果不是浏览器 都没有必要做了
|
|
|
*/
|
|
|
|
|
|
if (!isBrowser()) {
|
|
|
return function () {
|
|
|
return null;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
initState(settingState, setSettingState, props.publicPath);
|
|
|
window.addEventListener('languagechange', onLanguageChange, {
|
|
|
passive: true
|
|
|
});
|
|
|
return function () {
|
|
|
return window.removeEventListener('languagechange', onLanguageChange);
|
|
|
};
|
|
|
}, []);
|
|
|
/**
|
|
|
* 修改设置
|
|
|
* @param key
|
|
|
* @param value
|
|
|
* @param hideMessageLoading
|
|
|
*/
|
|
|
|
|
|
var changeSetting = function changeSetting(key, value, hideMessageLoading) {
|
|
|
var nextState = _objectSpread({}, preStateRef.current);
|
|
|
|
|
|
nextState[key] = value;
|
|
|
|
|
|
if (key === 'navTheme') {
|
|
|
updateTheme(value === 'realDark', undefined, hideMessageLoading, props.publicPath);
|
|
|
nextState.primaryColor = 'daybreak';
|
|
|
}
|
|
|
|
|
|
if (key === 'primaryColor') {
|
|
|
updateTheme(nextState.navTheme === 'realDark', value === 'daybreak' ? '' : value, hideMessageLoading, props.publicPath);
|
|
|
}
|
|
|
|
|
|
if (key === 'layout') {
|
|
|
nextState.contentWidth = value === 'top' ? 'Fixed' : 'Fluid';
|
|
|
}
|
|
|
|
|
|
if (key === 'layout' && value !== 'mix') {
|
|
|
nextState.splitMenus = false;
|
|
|
}
|
|
|
|
|
|
if (key === 'layout' && value === 'mix') {
|
|
|
nextState.navTheme = 'light';
|
|
|
}
|
|
|
|
|
|
if (key === 'colorWeak' && value === true) {
|
|
|
var dom = document.querySelector('body div');
|
|
|
|
|
|
if (!dom) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
dom.dataset.prosettingdrawer = dom.style.filter;
|
|
|
dom.style.filter = 'invert(80%)';
|
|
|
}
|
|
|
|
|
|
if (key === 'colorWeak' && value === false) {
|
|
|
var _dom = document.querySelector('body div');
|
|
|
|
|
|
if (!_dom) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
_dom.style.filter = _dom.dataset.prosettingdrawer || 'none';
|
|
|
delete _dom.dataset.prosettingdrawer;
|
|
|
}
|
|
|
|
|
|
preStateRef.current = nextState;
|
|
|
setSettingState(nextState);
|
|
|
};
|
|
|
|
|
|
var formatMessage = getFormatMessage();
|
|
|
var themeList = getThemeList(settingState);
|
|
|
useEffect(function () {
|
|
|
/**
|
|
|
* 如果不是浏览器 都没有必要做了
|
|
|
*/
|
|
|
if (!isBrowser()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (firstRender.current) {
|
|
|
firstRender.current = false;
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var browserHistory = createBrowserHistory();
|
|
|
var params = {};
|
|
|
|
|
|
if (window.location.search) {
|
|
|
params = parse(window.location.search.replace('?', ''));
|
|
|
}
|
|
|
|
|
|
var diffParams = getDifferentSetting(_objectSpread(_objectSpread({}, params), settingState));
|
|
|
|
|
|
if (Object.keys(settingState).length < 1) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
browserHistory.replace({
|
|
|
search: stringify(diffParams)
|
|
|
});
|
|
|
}, [JSON.stringify(settingState)]);
|
|
|
var baseClassName = "".concat(prefixCls, "-setting");
|
|
|
return /*#__PURE__*/React.createElement(_Drawer, {
|
|
|
visible: show,
|
|
|
width: 300,
|
|
|
onClose: function onClose() {
|
|
|
return setShow(false);
|
|
|
},
|
|
|
placement: "right",
|
|
|
getContainer: getContainer,
|
|
|
handler: /*#__PURE__*/React.createElement("div", {
|
|
|
className: "".concat(baseClassName, "-drawer-handle"),
|
|
|
onClick: function onClick() {
|
|
|
return setShow(!show);
|
|
|
}
|
|
|
}, show ? /*#__PURE__*/React.createElement(CloseOutlined, {
|
|
|
style: {
|
|
|
color: '#fff',
|
|
|
fontSize: 20
|
|
|
}
|
|
|
}) : /*#__PURE__*/React.createElement(SettingOutlined, {
|
|
|
style: {
|
|
|
color: '#fff',
|
|
|
fontSize: 20
|
|
|
}
|
|
|
})),
|
|
|
style: {
|
|
|
zIndex: 999
|
|
|
}
|
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
|
className: "".concat(baseClassName, "-drawer-content")
|
|
|
}, /*#__PURE__*/React.createElement(Body, {
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.pagestyle',
|
|
|
defaultMessage: 'Page style setting'
|
|
|
}),
|
|
|
prefixCls: baseClassName
|
|
|
}, /*#__PURE__*/React.createElement(BlockCheckbox, {
|
|
|
prefixCls: baseClassName,
|
|
|
list: themeList.themeList,
|
|
|
value: navTheme,
|
|
|
key: "navTheme",
|
|
|
onChange: function onChange(value) {
|
|
|
return changeSetting('navTheme', value, hideLoading);
|
|
|
}
|
|
|
})), /*#__PURE__*/React.createElement(Body, {
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.themecolor',
|
|
|
defaultMessage: 'Theme color'
|
|
|
}),
|
|
|
prefixCls: baseClassName
|
|
|
}, /*#__PURE__*/React.createElement(ThemeColor, {
|
|
|
value: primaryColor,
|
|
|
colors: hideColors ? [] : themeList.colorList[navTheme === 'realDark' ? 'dark' : 'light'],
|
|
|
formatMessage: formatMessage,
|
|
|
onChange: function onChange(color) {
|
|
|
return changeSetting('primaryColor', color, hideLoading);
|
|
|
}
|
|
|
})), /*#__PURE__*/React.createElement(_Divider, null), /*#__PURE__*/React.createElement(Body, {
|
|
|
prefixCls: baseClassName,
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.navigationmode'
|
|
|
})
|
|
|
}, /*#__PURE__*/React.createElement(BlockCheckbox, {
|
|
|
prefixCls: baseClassName,
|
|
|
value: layout,
|
|
|
key: "layout",
|
|
|
list: [{
|
|
|
key: 'side',
|
|
|
url: 'https://gw.alipayobjects.com/zos/antfincdn/XwFOFbLkSM/LCkqqYNmvBEbokSDscrm.svg',
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.sidemenu'
|
|
|
})
|
|
|
}, {
|
|
|
key: 'top',
|
|
|
url: 'https://gw.alipayobjects.com/zos/antfincdn/URETY8%24STp/KDNDBbriJhLwuqMoxcAr.svg',
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.topmenu'
|
|
|
})
|
|
|
}, {
|
|
|
key: 'mix',
|
|
|
url: 'https://gw.alipayobjects.com/zos/antfincdn/x8Ob%26B8cy8/LCkqqYNmvBEbokSDscrm.svg',
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.mixmenu'
|
|
|
})
|
|
|
}],
|
|
|
onChange: function onChange(value) {
|
|
|
return changeSetting('layout', value, hideLoading);
|
|
|
}
|
|
|
})), /*#__PURE__*/React.createElement(LayoutSetting, {
|
|
|
settings: settingState,
|
|
|
changeSetting: changeSetting
|
|
|
}), /*#__PURE__*/React.createElement(_Divider, null), /*#__PURE__*/React.createElement(Body, {
|
|
|
prefixCls: baseClassName,
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.regionalsettings'
|
|
|
})
|
|
|
}, /*#__PURE__*/React.createElement(RegionalSetting, {
|
|
|
settings: settingState,
|
|
|
changeSetting: changeSetting
|
|
|
})), /*#__PURE__*/React.createElement(_Divider, null), /*#__PURE__*/React.createElement(Body, {
|
|
|
prefixCls: baseClassName,
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.othersettings'
|
|
|
})
|
|
|
}, /*#__PURE__*/React.createElement(_List, {
|
|
|
split: false,
|
|
|
renderItem: renderLayoutSettingItem,
|
|
|
dataSource: [{
|
|
|
title: formatMessage({
|
|
|
id: 'app.setting.weakmode'
|
|
|
}),
|
|
|
action: /*#__PURE__*/React.createElement(_Switch, {
|
|
|
size: "small",
|
|
|
checked: !!colorWeak,
|
|
|
onChange: function onChange(checked) {
|
|
|
return changeSetting('colorWeak', checked);
|
|
|
}
|
|
|
})
|
|
|
}]
|
|
|
})), hideHintAlert && hideCopyButton ? null : /*#__PURE__*/React.createElement(_Divider, null), hideHintAlert ? null : /*#__PURE__*/React.createElement(_Alert, {
|
|
|
type: "warning",
|
|
|
message: formatMessage({
|
|
|
id: 'app.setting.production.hint'
|
|
|
}),
|
|
|
icon: /*#__PURE__*/React.createElement(NotificationOutlined, null),
|
|
|
showIcon: true,
|
|
|
style: {
|
|
|
marginBottom: 16
|
|
|
}
|
|
|
}), hideCopyButton ? null : /*#__PURE__*/React.createElement(CopyToClipboard, {
|
|
|
text: genCopySettingJson(settingState),
|
|
|
onCopy: function onCopy() {
|
|
|
return _message.success(formatMessage({
|
|
|
id: 'app.setting.copyinfo'
|
|
|
}));
|
|
|
}
|
|
|
}, /*#__PURE__*/React.createElement(_Button, {
|
|
|
block: true
|
|
|
}, /*#__PURE__*/React.createElement(CopyOutlined, null), " ", formatMessage({
|
|
|
id: 'app.setting.copy'
|
|
|
})))));
|
|
|
};
|
|
|
|
|
|
export default SettingDrawer; |