diff --git a/package.json b/package.json
index 0e79cd09c0c1cb1324346d96268f19639f63bb79..c4a07b73d41ed2d4cdf17be83bcfa53f0ff0146a 100755
--- a/package.json
+++ b/package.json
@@ -74,7 +74,6 @@
"mockjs": "^1.0.1-beta3",
"prettier": "1.14.2",
"pro-download": "^1.0.1",
- "react-loadable": "^5.4.0",
"redbox-react": "^1.5.0",
"regenerator-runtime": "^0.12.0",
"stylelint": "^9.4.0",
diff --git a/src/components/SettingDarwer/index.js b/src/components/SettingDarwer/index.js
index 3b8f28489ee6f513d99d1e140437e9aa95126c66..4c81b4209145cf1046d1ddf69e69484825953819 100644
--- a/src/components/SettingDarwer/index.js
+++ b/src/components/SettingDarwer/index.js
@@ -224,6 +224,9 @@ class SettingDarwer extends PureComponent {
{formatMessage({ id: 'app.setting.copy' })}
+
+ {formatMessage({ id: 'app.setting.production.hint' })}
+
);
diff --git a/src/components/SettingDarwer/index.less b/src/components/SettingDarwer/index.less
index f43db072b04522755e4b5497dd9d467462e61d2f..462fa36d853343ba0e62a0e3294ac43f5ca64ad1 100644
--- a/src/components/SettingDarwer/index.less
+++ b/src/components/SettingDarwer/index.less
@@ -12,7 +12,7 @@
margin-right: 16px;
position: relative;
// box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
- border-radius: 4px;
+ border-radius: @border-radius-base;
cursor: pointer;
img {
width: 48px;
@@ -31,6 +31,7 @@
font-weight: bold;
}
}
+
.color_block {
width: 38px;
height: 22px;
@@ -41,9 +42,10 @@
display: inline-block;
vertical-align: middle;
}
+
.title {
font-size: 14px;
- color: rgba(0, 0, 0, 0.85);
+ color: @heading-color;
line-height: 22px;
margin-bottom: 12px;
}
@@ -51,7 +53,7 @@
.handle {
position: fixed;
top: 240px;
- background: #1890ff;
+ background: @primary-color;
width: 48px;
height: 48px;
right: 273px;
@@ -65,3 +67,9 @@
font-size: 16px;
border-radius: 4px 0 0 4px;
}
+
+.productionHint {
+ font-size: 12px;
+ color: @text-color-secondary;
+ margin-top: 4px;
+}
diff --git a/src/defaultSetting.js b/src/defaultSetting.js
new file mode 100644
index 0000000000000000000000000000000000000000..93509816626f779f0dbf96f0abff8dbde1d547fe
--- /dev/null
+++ b/src/defaultSetting.js
@@ -0,0 +1,11 @@
+export default {
+ collapse: false,
+ silderTheme: 'dark',
+ themeColor: '#1890FF',
+ layout: 'sidemenu',
+ grid: 'Fluid',
+ fixedHeader: false,
+ autoHideHeader: false,
+ fixSiderbar: false,
+ colorWeak: false,
+};
diff --git a/src/locales/zh-CN.js b/src/locales/zh-CN.js
index 52683dcbfd4f21acf0700c7b0b6032b8160f7c3e..05107549cda08b8ae28c6ae67900b6b34e8fb57a 100644
--- a/src/locales/zh-CN.js
+++ b/src/locales/zh-CN.js
@@ -162,5 +162,6 @@ export default {
'app.setting.othersettings': '其他设置',
'app.setting.weakmode': '色弱模式',
'app.setting.copy': '拷贝设置',
- 'app.setting.copyinfo': '拷贝成功,请到 src/models/setting.js 中替换 defaultSetting',
+ 'app.setting.copyinfo': '拷贝成功,请到 src/defaultSetting.js 中替换',
+ 'app.setting.production.hint': '设置侧边栏只会出现在开发环境,请手动配置 src/defaultSetting.js',
};
diff --git a/src/models/setting.js b/src/models/setting.js
index f968d6cefe935446f02539b60336d8629248383d..ffb7d807c10cdc20f5252fde255d788c88c84eb7 100644
--- a/src/models/setting.js
+++ b/src/models/setting.js
@@ -1,42 +1,59 @@
import { message } from 'antd';
+import defaultSetting from '../defaultSetting';
-const defaultSetting = {
- collapse: false,
- silderTheme: 'dark',
- themeColor: '#1890FF',
- layout: 'sidemenu',
- grid: 'Fluid',
- fixedHeader: false,
- autoHideHeader: false,
- fixSiderbar: false,
- colorWeak: false,
-};
-
-const buildLessAndWeak = (themeColor, colorWeak) => {
+let lessNodesAppended;
+const buildSettings = (themeColor, colorWeak) => {
+ document.body.className = colorWeak ? 'colorWeak' : '';
// Determine if the component is remounted
- if (themeColor && themeColor !== '#1890FF' && themeColor !== window['antd_pro_less_color']) {
- window.less.refresh().then(() => {
- const hideMessage = message.loading('正在编译主题!', 0);
- setTimeout(() => {
- window.less
- .modifyVars({
- '@primary-color': themeColor,
- '@input-hover-border-color': themeColor,
- })
- .then(() => {
- window['antd_pro_less_color'] = themeColor;
- hideMessage();
- })
- .catch(() => {
- message.error(`Failed to update theme`);
- });
- }, 200);
- });
+ if (!themeColor || themeColor === '#1890FF' || themeColor === window['antd_pro_less_color']) {
+ return;
}
- if (colorWeak) {
- document.body.className = 'colorWeak';
+ const hideMessage = message.loading('正在编译主题!', 0);
+ if (!lessNodesAppended) {
+ console.log('append less nodes');
+ const lessStyleNode = document.createElement('link');
+ const lessConfigNode = document.createElement('script');
+ const lessScriptNode = document.createElement('script');
+ lessStyleNode.setAttribute('rel', 'stylesheet/less');
+ lessStyleNode.setAttribute('href', '/color.less');
+ lessConfigNode.innerHTML = `
+ window.less = {
+ async: true,
+ env: 'production',
+ javascriptEnabled: true
+ };
+ `;
+ lessScriptNode.src = 'https://gw.alipayobjects.com/os/lib/less.js/3.8.1/less.min.js';
+ lessScriptNode.async = true;
+ lessScriptNode.onload = () => {
+ buildIt();
+ lessScriptNode.onload = null;
+ };
+ document.head.appendChild(lessStyleNode);
+ document.head.appendChild(lessConfigNode);
+ document.head.appendChild(lessScriptNode);
+ lessNodesAppended = true;
} else {
- document.body.className = '';
+ buildIt();
+ }
+ function buildIt() {
+ if (!window.less) {
+ return;
+ }
+ window.less
+ .modifyVars({
+ '@primary-color': themeColor,
+ '@input-hover-border-color': themeColor,
+ })
+ .then(() => {
+ console.log('start to compile');
+ window['antd_pro_less_color'] = themeColor;
+ hideMessage();
+ })
+ .catch(() => {
+ message.error(`Failed to update theme`);
+ hideMessage();
+ });
}
};
@@ -54,7 +71,7 @@ export default {
}
});
const { themeColor, colorWeak } = setting;
- buildLessAndWeak(themeColor, colorWeak);
+ buildSettings(themeColor, colorWeak);
return {
...state,
...setting,
@@ -80,7 +97,7 @@ export default {
}
});
const { themeColor, colorWeak } = payload;
- buildLessAndWeak(themeColor, colorWeak);
+ buildSettings(themeColor, colorWeak);
window.history.replaceState(null, 'setting', urlParams.href);
return {
...state,
diff --git a/src/pages/document.ejs b/src/pages/document.ejs
index a3644cbfecda3154b80a8b4b7ef6e3738f8c6b77..43ae1f3e596869ce4156e4b36a84f339a1df4658 100644
--- a/src/pages/document.ejs
+++ b/src/pages/document.ejs
@@ -10,13 +10,5 @@
-
-
-