Commit 0a5a9fc8 authored by afc163's avatar afc163 Committed by 陈帅

improve less compile

parent a623b7fb
...@@ -224,6 +224,9 @@ class SettingDarwer extends PureComponent { ...@@ -224,6 +224,9 @@ class SettingDarwer extends PureComponent {
{formatMessage({ id: 'app.setting.copy' })} {formatMessage({ id: 'app.setting.copy' })}
</Button> </Button>
</CopyToClipboard> </CopyToClipboard>
<div className={styles.productionHint}>
{formatMessage({ id: 'app.setting.production.hint' })}
</div>
</div> </div>
</Drawer> </Drawer>
); );
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
margin-right: 16px; margin-right: 16px;
position: relative; position: relative;
// box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1); // box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
border-radius: 4px; border-radius: @border-radius-base;
cursor: pointer; cursor: pointer;
img { img {
width: 48px; width: 48px;
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
font-weight: bold; font-weight: bold;
} }
} }
.color_block { .color_block {
width: 38px; width: 38px;
height: 22px; height: 22px;
...@@ -41,9 +42,10 @@ ...@@ -41,9 +42,10 @@
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
} }
.title { .title {
font-size: 14px; font-size: 14px;
color: rgba(0, 0, 0, 0.85); color: @heading-color;
line-height: 22px; line-height: 22px;
margin-bottom: 12px; margin-bottom: 12px;
} }
...@@ -51,7 +53,7 @@ ...@@ -51,7 +53,7 @@
.handle { .handle {
position: fixed; position: fixed;
top: 240px; top: 240px;
background: #1890ff; background: @primary-color;
width: 48px; width: 48px;
height: 48px; height: 48px;
right: 273px; right: 273px;
...@@ -65,3 +67,9 @@ ...@@ -65,3 +67,9 @@
font-size: 16px; font-size: 16px;
border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px;
} }
.productionHint {
font-size: 12px;
color: @text-color-secondary;
margin-top: 4px;
}
export default {
collapse: false,
silderTheme: 'dark',
themeColor: '#1890FF',
layout: 'sidemenu',
grid: 'Fluid',
fixedHeader: false,
autoHideHeader: false,
fixSiderbar: false,
colorWeak: false,
};
...@@ -162,5 +162,6 @@ export default { ...@@ -162,5 +162,6 @@ export default {
'app.setting.othersettings': '其他设置', 'app.setting.othersettings': '其他设置',
'app.setting.weakmode': '色弱模式', 'app.setting.weakmode': '色弱模式',
'app.setting.copy': '拷贝设置', 'app.setting.copy': '拷贝设置',
'app.setting.copyinfo': '拷贝成功,请到 src/models/setting.js 中替换 defaultSetting', 'app.setting.copyinfo': '拷贝成功,请到 src/defaultSetting.js 中替换',
'app.setting.production.hint': '设置侧边栏只会出现在开发环境,请手动配置 src/defaultSetting.js',
}; };
import { message } from 'antd'; import { message } from 'antd';
import defaultSetting from '../defaultSetting';
const defaultSetting = { let lessNodesAppended;
collapse: false, const buildSettings = (themeColor, colorWeak) => {
silderTheme: 'dark', document.body.className = colorWeak ? 'colorWeak' : '';
themeColor: '#1890FF',
layout: 'sidemenu',
grid: 'Fluid',
fixedHeader: false,
autoHideHeader: false,
fixSiderbar: false,
colorWeak: false,
};
const buildLessAndWeak = (themeColor, colorWeak) => {
// Determine if the component is remounted // Determine if the component is remounted
if (themeColor && themeColor !== '#1890FF' && themeColor !== window['antd_pro_less_color']) { if (!themeColor || themeColor === '#1890FF' || themeColor === window['antd_pro_less_color']) {
window.less.refresh().then(() => { return;
}
const hideMessage = message.loading('正在编译主题!', 0); const hideMessage = message.loading('正在编译主题!', 0);
setTimeout(() => { 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 {
buildIt();
}
function buildIt() {
if (!window.less) {
return;
}
window.less window.less
.modifyVars({ .modifyVars({
'@primary-color': themeColor, '@primary-color': themeColor,
'@input-hover-border-color': themeColor, '@input-hover-border-color': themeColor,
}) })
.then(() => { .then(() => {
console.log('start to compile');
window['antd_pro_less_color'] = themeColor; window['antd_pro_less_color'] = themeColor;
hideMessage(); hideMessage();
}) })
.catch(() => { .catch(() => {
message.error(`Failed to update theme`); message.error(`Failed to update theme`);
hideMessage();
}); });
}, 200);
});
}
if (colorWeak) {
document.body.className = 'colorWeak';
} else {
document.body.className = '';
} }
}; };
...@@ -54,7 +71,7 @@ export default { ...@@ -54,7 +71,7 @@ export default {
} }
}); });
const { themeColor, colorWeak } = setting; const { themeColor, colorWeak } = setting;
buildLessAndWeak(themeColor, colorWeak); buildSettings(themeColor, colorWeak);
return { return {
...state, ...state,
...setting, ...setting,
...@@ -80,7 +97,7 @@ export default { ...@@ -80,7 +97,7 @@ export default {
} }
}); });
const { themeColor, colorWeak } = payload; const { themeColor, colorWeak } = payload;
buildLessAndWeak(themeColor, colorWeak); buildSettings(themeColor, colorWeak);
window.history.replaceState(null, 'setting', urlParams.href); window.history.replaceState(null, 'setting', urlParams.href);
return { return {
...state, ...state,
......
...@@ -10,13 +10,5 @@ ...@@ -10,13 +10,5 @@
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<link rel="stylesheet/less" type="text/css" href="/color.less" />
<script>
window.less = {
async: false,
env: 'production'
};
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/less.js/2.7.2/less.min.js"></script>
</body> </body>
</html> </html>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment