| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- //node_modules\@ant-design-vue\pro-layout\es\components\SettingDrawer
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, 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 omit from 'omit.js';
- import PropTypes from 'ant-design-vue/es/_util/vue-types';
- import 'ant-design-vue/es/divider/style';
- import Divider from 'ant-design-vue/es/divider';
- import 'ant-design-vue/es/drawer/style';
- import Drawer from 'ant-design-vue/es/drawer';
- import 'ant-design-vue/es/list/style';
- import List from 'ant-design-vue/es/list';
- import 'ant-design-vue/es/switch/style';
- import Switch from 'ant-design-vue/es/switch';
- import 'ant-design-vue/es/button/style';
- import Button from 'ant-design-vue/es/button';
- import 'ant-design-vue/es/icon/style';
- import Icon from 'ant-design-vue/es/icon';
- import 'ant-design-vue/es/alert/style';
- import Alert from 'ant-design-vue/es/alert';
- import antPortal from 'ant-design-vue/es/_util/portalDirective';
- import 'ant-design-vue/es/message/style';
- import message from 'ant-design-vue/es/message';
- import BlockCheckbox from './BlockCheckbox';
- import ThemeColor from './ThemeColor';
- import LayoutSetting, { renderLayoutSettingItem } from './LayoutChange';
- import { updateTheme, updateColorWeak } from '../../utils/dynamicTheme';
- import { contentWidthCheck, genStringToTheme } from '../../utils/util';
- import CopyToClipboard from 'vue-copy-to-clipboard';
- var baseClassName = 'ant-pro-setting-drawer';
- var BodyProps = {
- title: PropTypes.string.def('')
- };
- var Body = {
- props: BodyProps,
- render: function render(h) {
- var title = this.title;
- return h("div", {
- style: {
- marginBottom: 24
- }
- }, [h("h3", {
- "class": "".concat(baseClassName, "-title")
- }, [title]), this.$slots["default"]]);
- }
- };
- var defaultI18nRender = function defaultI18nRender(t) {
- return t;
- };
- var getThemeList = function getThemeList(i18nRender) {
- var list = window.umi_plugin_ant_themeVar || [];
- var themeList = [{
- key: 'light',
- url: 'https://gw.alipayobjects.com/zos/antfincdn/NQ%24zoisaD2/jpRkZQMyYRryryPNtyIC.svg',
- title: i18nRender('app.setting.pagestyle.light')
- }, {
- key: 'dark',
- url: 'https://gw.alipayobjects.com/zos/antfincdn/XwFOFbLkSM/LCkqqYNmvBEbokSDscrm.svg',
- title: i18nRender('app.setting.pagestyle.dark')
- }];
- var darkColorList = [{
- key: '#1890ff',
- color: '#1890ff',
- theme: 'dark'
- }];
- var lightColorList = [{
- key: '#1890ff',
- color: '#1890ff',
- theme: 'dark'
- }];
- if (list.find(function (item) {
- return item.theme === 'dark';
- })) {
- themeList.push({
- // disable click
- disable: true,
- key: 'realDark',
- url: 'https://gw.alipayobjects.com/zos/antfincdn/hmKaLQvmY2/LCkqqYNmvBEbokSDscrm.svg',
- title: i18nRender('app.setting.pagestyle.realdark')
- });
- } // 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
- };
- };
- var handleChangeSetting = function handleChangeSetting(key, value, hideMessageLoading) {
- if (key === 'primaryColor') {
- // 更新主色调
- updateTheme(value);
- }
- if (key === 'colorWeak') {
- updateColorWeak(value);
- }
- };
- var genCopySettingJson = function genCopySettingJson(settings) {
- return JSON.stringify(omit(_objectSpread({}, settings, {
- primaryColor: genStringToTheme(settings.primaryColor)
- }), ['colorWeak']), null, 2);
- };
- export var settings = {
- theme: PropTypes.oneOf(['dark', 'light', 'realDark']),
- primaryColor: PropTypes.string,
- layout: PropTypes.oneOf(['sidemenu', 'topmenu']),
- colorWeak: PropTypes.bool,
- contentWidth: PropTypes.oneOf(['Fluid', 'Fixed']).def('Fluid'),
- // 替换兼容 PropTypes.oneOf(['Fluid', 'Fixed']).def('Fluid')
- // contentWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).def('Fluid'),
- fixedHeader: PropTypes.bool,
- fixSiderbar: PropTypes.bool,
- hideHintAlert: PropTypes.bool.def(false),
- hideCopyButton: PropTypes.bool.def(false)
- };
- export var SettingDrawerProps = {
- getContainer: PropTypes.func,
- settings: PropTypes.objectOf(settings),
- i18nRender: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]).def(false)
- };
- var SettingDrawer = {
- name: 'SettingDrawer',
- props: SettingDrawerProps,
- inject: ['locale'],
- data: function data() {
- return {
- show: false
- };
- },
- render: function render(h) {
- var _this = this;
- var setShow = this.setShow,
- getContainer = this.getContainer,
- settings = this.settings;
- var _settings$theme = settings.theme,
- theme = _settings$theme === void 0 ? 'dark' : _settings$theme,
- _settings$primaryColo = settings.primaryColor,
- primaryColor = _settings$primaryColo === void 0 ? 'daybreak' : _settings$primaryColo,
- _settings$layout = settings.layout,
- layout = _settings$layout === void 0 ? 'sidemenu' : _settings$layout,
- _settings$fixedHeader = settings.fixedHeader,
- fixedHeader = _settings$fixedHeader === void 0 ? false : _settings$fixedHeader,
- _settings$fixSiderbar = settings.fixSiderbar,
- fixSiderbar = _settings$fixSiderbar === void 0 ? false : _settings$fixSiderbar,
- contentWidth = settings.contentWidth,
- hideHintAlert = settings.hideHintAlert,
- hideCopyButton = settings.hideCopyButton,
- colorWeak = settings.colorWeak;
- var i18n = this.$props.i18nRender || this.locale || defaultI18nRender;
- var themeList = getThemeList(i18n);
- var isTopMenu = layout === 'topmenu';
- var iconStyle = {
- color: '#fff',
- fontSize: 20
- };
- var changeSetting = function changeSetting(type, value) {
- _this.$emit('change', {
- type: type,
- value: value
- });
- handleChangeSetting(type, value, false);
- };
- return h(Drawer, {
- attrs: {
- visible: this.show,
- width: 300,
- placement: "right",
- getContainer: getContainer
- /*handle={
- <div class="ant-pro-setting-drawer-handle" onClick={() => setShow(!this.show)}>
- {this.show
- ? (<Icon type="close" style={iconStyle} />)
- : (<Icon type="setting" style={iconStyle} />)
- }
- </div>
- }*/
- },
- on: {
- "close": function close() {
- return setShow(false);
- }
- },
- style: {
- zIndex: 999
- }
- }, [h("template", {
- slot: "handle"
- }, [h("div", {
- "class": "".concat(baseClassName, "-handle"),
- on: {
- "click": function click() {
- return setShow(!_this.show);
- }
- }
- }, [this.show ? h(Icon, {
- attrs: {
- type: "close"
- },
- style: iconStyle
- }) : h(Icon, {
- attrs: {
- type: "setting"
- },
- style: iconStyle
- })])]), h("div", {
- "class": "".concat(baseClassName, "-content")
- }, [h(Body, {
- attrs: {
- title: i18n('app.setting.pagestyle')
- }
- }, [h(BlockCheckbox, {
- attrs: {
- i18nRender: i18n,
- list: themeList.themeList,
- value: theme
- },
- on: {
- "change": function change(val) {
- changeSetting('theme', val);
- }
- }
- })]), h(ThemeColor, {
- attrs: {
- i18nRender: i18n,
- title: i18n('app.setting.themecolor'),
- value: primaryColor,
- colors: themeList.colorList[theme === 'realDark' ? 'dark' : 'light']
- },
- on: {
- "change": function change(color) {
- changeSetting('primaryColor', color, null);
- }
- }
- }), h(Divider), h(Body, {
- attrs: {
- title: i18n('app.setting.navigationmode')
- }
- }, [h(BlockCheckbox, {
- attrs: {
- i18nRender: i18n,
- value: layout
- },
- on: {
- "change": function change(value) {
- changeSetting('layout', value, null);
- }
- }
- })]), h(LayoutSetting, {
- attrs: {
- i18nRender: i18n,
- contentWidth: contentWidth,
- fixedHeader: fixedHeader,
- fixSiderbar: isTopMenu ? false : fixSiderbar,
- layout: layout
- },
- on: {
- "change": function change(_ref) {
- var type = _ref.type,
- value = _ref.value;
- changeSetting(type, value);
- }
- }
- }), h(Divider), h(Body, {
- attrs: {
- title: i18n('app.setting.othersettings')
- }
- }, [h(List, {
- attrs: {
- split: false,
- renderItem: function renderItem(item) {
- return renderLayoutSettingItem(h, item);
- },
- dataSource: [{
- title: i18n('app.setting.weakmode'),
- action: h(Switch, {
- attrs: {
- size: "small",
- checked: !!colorWeak
- },
- on: {
- "change": function change(checked) {
- return changeSetting('colorWeak', checked);
- }
- }
- })
- }]
- }
- })]), hideHintAlert && hideCopyButton ? null : h(Divider), hideHintAlert ? null : h(Alert, {
- attrs: {
- type: "warning",
- message: i18n('app.setting.production.hint'),
- icon: h(Icon, {
- attrs: {
- type: 'notification'
-
- }
- }),
- showIcon: false
- },
- style: {
- marginBottom: '16px',
- display:'none'
- }
- }), hideCopyButton ? null : h(CopyToClipboard, {
- attrs: {
- text: genCopySettingJson(settings)
- },
- on: {
- "copy": function copy() {
- localStorage.setItem('theme_save',JSON.stringify(settings));
- return message.success(i18n('app.setting.copyinfo'));
- }
- }
- }, [h(Button, {
- attrs: {
- block: true
- }
- }, [h(Icon, {
- attrs: {
- type: 'save'
- }
- }), i18n('app.setting.copy')])]), h("div", {
- "class": "".concat(baseClassName, "-content-footer")
- }, [this.$slots["default"]])])]);
- },
- methods: {
- setShow: function setShow(flag) {
- this.show = flag;
- }
- }
- };
- SettingDrawer.install = function (Vue) {
- Vue.use(antPortal);
- Vue.component(SettingDrawer.name, SettingDrawer);
- };
- export default SettingDrawer;
|