36 lines
1.5 KiB
JavaScript
36 lines
1.5 KiB
JavaScript
import client from 'webpack-theme-color-replacer/client';
|
||
import generate from '@ant-design/colors/lib/generate';
|
||
import { message } from 'ant-design-vue';
|
||
export var themeColor = {
|
||
getAntdSerials: function getAntdSerials(color) {
|
||
// 淡化(即less的tint)
|
||
var lightens = new Array(9).fill().map(function (t, i) {
|
||
return client.varyColor.lighten(color, i / 10);
|
||
}); // colorPalette 变换得到颜色值
|
||
|
||
var colorPalettes = generate(color);
|
||
var rgb = client.varyColor.toNum3(color.replace('#', '')).join(',');
|
||
return lightens.concat(colorPalettes).concat(rgb);
|
||
},
|
||
changeColor: function changeColor(newColor) {
|
||
var options = {
|
||
newColors: this.getAntdSerials(newColor),
|
||
// new colors array, one-to-one corresponde with `matchColors`
|
||
changeUrl: function changeUrl(cssUrl) {
|
||
return "/".concat(cssUrl); // while router is not `hash` mode, it needs absolute path
|
||
}
|
||
};
|
||
return client.changer.changeColor(options, Promise);
|
||
}
|
||
};
|
||
export var updateTheme = function updateTheme(newPrimaryColor) {
|
||
var hideMessage = message.loading('正在切换主题', 0);
|
||
themeColor.changeColor(newPrimaryColor).then(function (r) {
|
||
hideMessage();
|
||
});
|
||
};
|
||
export var updateColorWeak = function updateColorWeak(colorWeak) {
|
||
// document.body.className = colorWeak ? 'colorWeak' : '';
|
||
var app = document.body.querySelector('#app .ant-pro-basicLayout');
|
||
colorWeak ? app.classList.add('colorWeak') : app.classList.remove('colorWeak');
|
||
}; |