@jetlinks-web/components 2.0.2 → 2.0.4-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/AMap/Map.js +125 -0
- package/es/AMap/index.js +2 -0
- package/es/AMap/util.js +56 -0
- package/es/BadgeStatus/Badge.js +54 -0
- package/es/BadgeStatus/color.js +21 -0
- package/es/BadgeStatus/index.js +3 -0
- package/es/CardSelect/CardSelect.js +123 -0
- package/es/CardSelect/index.js +2 -0
- package/es/CheckButton/CheckButton.js +120 -0
- package/es/CheckButton/index.js +2 -0
- package/es/CheckButton/style/index.css +37 -0
- package/es/CheckButton/style/index.less +40 -0
- package/es/ConfigProvider/context.js +12 -0
- package/es/ConfigProvider/index.js +31 -0
- package/es/Echarts/Echarts.js +47 -0
- package/es/Echarts/index.js +2 -0
- package/es/Ellipsis/Ellipsis.js +184 -0
- package/es/Ellipsis/index.js +2 -0
- package/es/Ellipsis/style/index.css +17 -0
- package/es/Ellipsis/style/index.less +20 -0
- package/es/Empty/Empty.js +56 -0
- package/es/Empty/image.js +2 -0
- package/es/Empty/index.js +2 -0
- package/es/FullPage/FullPage.js +31 -0
- package/es/FullPage/index.js +2 -0
- package/es/Icon/icon.js +42 -0
- package/{src/Icon/index.ts → es/Icon/index.js} +2 -3
- package/es/MonacoEditor/Monaco.js +238 -0
- package/es/MonacoEditor/index.js +2 -0
- package/es/PermissionButton/index.js +117 -0
- package/es/ProLayout/Basic/BasicLayout.js +259 -0
- package/es/ProLayout/Basic/Header.js +97 -0
- package/es/ProLayout/PageContainer/index.js +324 -0
- package/es/ProLayout/PageContainer/typings.js +1 -0
- package/es/ProLayout/RouteContext.js +22 -0
- package/es/ProLayout/SiderMenu/BaseMenu.js +285 -0
- package/es/ProLayout/SiderMenu/SiderMenu.js +278 -0
- package/es/ProLayout/SiderMenu/index.js +2 -0
- package/es/ProLayout/SiderMenu/typings.js +1 -0
- package/es/ProLayout/TopHeader/index.js +163 -0
- package/es/ProLayout/defaultSettings.js +66 -0
- package/{src/ProLayout/index.ts → es/ProLayout/index.js} +4 -6
- package/{src → es}/ProLayout/style/default.less +1 -1
- package/es/ProLayout/style/index.js +1 -0
- package/es/ProLayout/typings.js +1 -0
- package/es/ProLayout/util.js +61 -0
- package/es/ProTable/index.js +411 -0
- package/es/ProTable/proTableTypes.js +11 -0
- package/es/ProTable/style/index.css +65 -0
- package/es/ProTable/style/index.js +1 -0
- package/{src → es}/ProTable/style/index.less +92 -92
- package/es/Scrollbar/Bar.js +114 -0
- package/es/Scrollbar/Scrollbar.js +212 -0
- package/es/Scrollbar/Thumb.js +189 -0
- package/es/Scrollbar/constants.js +1 -0
- package/es/Scrollbar/index.js +2 -0
- package/es/Scrollbar/scrollbarProps.js +100 -0
- package/es/Scrollbar/thumbProps.js +10 -0
- package/es/Scrollbar/util.js +30 -0
- package/es/Search/Advanced/History.js +183 -0
- package/es/Search/Advanced/SaveHistory.js +153 -0
- package/es/Search/Advanced/index.js +520 -0
- package/es/Search/Item.js +497 -0
- package/es/Search/Search.js +249 -0
- package/es/Search/hooks/index.js +1 -0
- package/es/Search/hooks/useSearchItems.js +40 -0
- package/es/Search/index.js +4 -0
- package/es/Search/setting.js +91 -0
- package/es/Search/style/Item.less +33 -0
- package/es/Search/style/Search.less +179 -0
- package/es/Search/style/index.js +2 -0
- package/es/Search/typing.js +1 -0
- package/es/Search/util.js +234 -0
- package/es/ValueItem/ValueItem.js +233 -0
- package/es/ValueItem/index.js +2 -0
- package/es/ValueItem/util.js +16 -0
- package/es/index.js +24 -0
- package/es/style/index.js +3 -0
- package/es/style/variable.css +0 -0
- package/{src → es}/style/variable.less +2 -4
- package/es/style.js +5 -0
- package/lib/AMap/Map.js +125 -0
- package/lib/AMap/index.js +9 -0
- package/lib/AMap/util.js +62 -0
- package/lib/BadgeStatus/Badge.js +54 -0
- package/lib/BadgeStatus/color.js +27 -0
- package/lib/BadgeStatus/index.js +22 -0
- package/lib/CardSelect/CardSelect.js +123 -0
- package/lib/CardSelect/index.js +9 -0
- package/lib/CheckButton/CheckButton.js +120 -0
- package/lib/CheckButton/index.js +9 -0
- package/lib/CheckButton/style/index.css +37 -0
- package/lib/CheckButton/style/index.less +40 -0
- package/lib/ConfigProvider/context.js +19 -0
- package/lib/ConfigProvider/index.js +37 -0
- package/lib/Echarts/Echarts.js +47 -0
- package/lib/Echarts/index.js +9 -0
- package/lib/Ellipsis/Ellipsis.js +184 -0
- package/lib/Ellipsis/index.js +9 -0
- package/lib/Ellipsis/style/index.css +17 -0
- package/lib/Ellipsis/style/index.less +20 -0
- package/lib/Empty/Empty.js +56 -0
- package/lib/Empty/image.js +8 -0
- package/lib/Empty/index.js +9 -0
- package/lib/FullPage/FullPage.js +31 -0
- package/lib/FullPage/index.js +9 -0
- package/lib/Icon/icon.js +52 -0
- package/lib/Icon/index.js +9 -0
- package/lib/MonacoEditor/Monaco.js +238 -0
- package/lib/MonacoEditor/index.js +9 -0
- package/lib/PermissionButton/index.js +124 -0
- package/lib/ProLayout/Basic/BasicLayout.js +268 -0
- package/lib/ProLayout/Basic/BasicLayout.less +66 -0
- package/lib/ProLayout/Basic/Header.js +103 -0
- package/lib/ProLayout/Basic/Header.less +8 -0
- package/lib/ProLayout/PageContainer/index.js +327 -0
- package/lib/ProLayout/PageContainer/index.less +103 -0
- package/lib/ProLayout/PageContainer/typings.js +5 -0
- package/lib/ProLayout/RouteContext.js +28 -0
- package/lib/ProLayout/SiderMenu/BaseMenu.js +290 -0
- package/lib/ProLayout/SiderMenu/SiderMenu.js +287 -0
- package/lib/ProLayout/SiderMenu/index.js +20 -0
- package/lib/ProLayout/SiderMenu/index.less +212 -0
- package/lib/ProLayout/SiderMenu/typings.js +5 -0
- package/lib/ProLayout/TopHeader/index.js +168 -0
- package/lib/ProLayout/TopHeader/index.less +174 -0
- package/lib/ProLayout/defaultSettings.js +72 -0
- package/lib/ProLayout/index.js +16 -0
- package/lib/ProLayout/style/default.less +4 -0
- package/lib/ProLayout/style/index.js +3 -0
- package/lib/ProLayout/style/style.less +7 -0
- package/lib/ProLayout/typings.js +5 -0
- package/lib/ProLayout/util.js +72 -0
- package/lib/ProTable/index.js +417 -0
- package/lib/ProTable/proTableTypes.js +17 -0
- package/lib/ProTable/style/index.css +65 -0
- package/lib/ProTable/style/index.js +3 -0
- package/lib/ProTable/style/index.less +92 -0
- package/lib/Scrollbar/Bar.js +114 -0
- package/lib/Scrollbar/Scrollbar.js +212 -0
- package/lib/Scrollbar/Thumb.js +189 -0
- package/lib/Scrollbar/constants.js +7 -0
- package/lib/Scrollbar/index.js +9 -0
- package/{src/Scrollbar/scrollbar.ts → lib/Scrollbar/scrollbarProps.js} +106 -108
- package/lib/Scrollbar/thumbProps.js +16 -0
- package/lib/Scrollbar/util.js +37 -0
- package/lib/Search/Advanced/History.js +183 -0
- package/lib/Search/Advanced/SaveHistory.js +153 -0
- package/lib/Search/Advanced/index.js +520 -0
- package/lib/Search/Item.js +497 -0
- package/lib/Search/Search.js +249 -0
- package/lib/Search/hooks/index.js +16 -0
- package/lib/Search/hooks/useSearchItems.js +47 -0
- package/lib/Search/index.js +16 -0
- package/lib/Search/setting.js +97 -0
- package/lib/Search/style/Item.less +33 -0
- package/lib/Search/style/Search.less +179 -0
- package/lib/Search/style/index.js +4 -0
- package/lib/Search/typing.js +5 -0
- package/lib/Search/util.js +241 -0
- package/lib/ValueItem/ValueItem.js +233 -0
- package/lib/ValueItem/index.js +9 -0
- package/lib/ValueItem/util.js +22 -0
- package/lib/index.js +158 -0
- package/lib/style/components.less +3 -0
- package/lib/style/index.js +4 -0
- package/lib/style/variable.css +0 -0
- package/lib/style/variable.less +2 -0
- package/lib/style.js +7 -0
- package/package.json +123 -13
- package/index.ts +0 -64
- package/src/AMap/Map.vue +0 -110
- package/src/AMap/index.ts +0 -1
- package/src/AMap/util.ts +0 -56
- package/src/BadgeStatus/Badge.vue +0 -41
- package/src/BadgeStatus/color.ts +0 -25
- package/src/BadgeStatus/index.ts +0 -4
- package/src/CardSelect/CardSelect.vue +0 -136
- package/src/CardSelect/index.ts +0 -3
- package/src/CheckButton/CheckButton.vue +0 -146
- package/src/CheckButton/index.md +0 -27
- package/src/CheckButton/index.ts +0 -3
- package/src/ConfigProvider/context.ts +0 -17
- package/src/ConfigProvider/index.tsx +0 -42
- package/src/Echarts/Echarts.vue +0 -43
- package/src/Echarts/index.ts +0 -3
- package/src/Ellipsis/Ellipsis.vue +0 -182
- package/src/Ellipsis/index.ts +0 -3
- package/src/Empty/Empty.vue +0 -43
- package/src/Empty/image.ts +0 -3
- package/src/Empty/index.ts +0 -2
- package/src/FullPage/FullPage.vue +0 -30
- package/src/FullPage/index.ts +0 -3
- package/src/Icon/icon.tsx +0 -40
- package/src/MonacoEditor/Monaco.vue +0 -242
- package/src/MonacoEditor/index.md +0 -26
- package/src/MonacoEditor/index.ts +0 -2
- package/src/PermissionButton/index.tsx +0 -110
- package/src/ProLayout/Basic/BasicLayout.tsx +0 -392
- package/src/ProLayout/Basic/Header.tsx +0 -115
- package/src/ProLayout/PageContainer/index.tsx +0 -441
- package/src/ProLayout/PageContainer/typings.ts +0 -56
- package/src/ProLayout/RouteContext.ts +0 -87
- package/src/ProLayout/SiderMenu/BaseMenu.tsx +0 -296
- package/src/ProLayout/SiderMenu/SiderMenu.tsx +0 -320
- package/src/ProLayout/SiderMenu/index.ts +0 -2
- package/src/ProLayout/SiderMenu/typings.ts +0 -49
- package/src/ProLayout/TopHeader/index.tsx +0 -210
- package/src/ProLayout/defaultSettings.ts +0 -106
- package/src/ProLayout/style/index.ts +0 -1
- package/src/ProLayout/typings.ts +0 -87
- package/src/ProLayout/util.ts +0 -64
- package/src/ProTable/index.md +0 -53
- package/src/ProTable/index.tsx +0 -551
- package/src/ProTable/proTableTypes.ts +0 -70
- package/src/ProTable/style/index.ts +0 -1
- package/src/Scrollbar/Bar.vue +0 -75
- package/src/Scrollbar/Scrollbar.vue +0 -260
- package/src/Scrollbar/Thumb.vue +0 -163
- package/src/Scrollbar/constants.ts +0 -10
- package/src/Scrollbar/index.ts +0 -4
- package/src/Scrollbar/thumb.ts +0 -16
- package/src/Scrollbar/util.ts +0 -38
- package/src/Search/Advanced/History.vue +0 -140
- package/src/Search/Advanced/SaveHistory.vue +0 -108
- package/src/Search/Advanced/index.vue +0 -435
- package/src/Search/Item.vue +0 -525
- package/src/Search/Search.vue +0 -398
- package/src/Search/hooks/index.ts +0 -1
- package/src/Search/hooks/useSearchItems.ts +0 -68
- package/src/Search/index.md +0 -57
- package/src/Search/index.ts +0 -5
- package/src/Search/setting.ts +0 -55
- package/src/Search/typing.ts +0 -76
- package/src/Search/util.ts +0 -263
- package/src/ValueItem/ValueItem.vue +0 -192
- package/src/ValueItem/index.ts +0 -3
- package/src/ValueItem/util.ts +0 -16
- package/src/style/index.ts +0 -3
- /package/{src → es}/ProLayout/Basic/BasicLayout.less +0 -0
- /package/{src → es}/ProLayout/Basic/Header.less +0 -0
- /package/{src → es}/ProLayout/PageContainer/index.less +0 -0
- /package/{src → es}/ProLayout/SiderMenu/index.less +0 -0
- /package/{src → es}/ProLayout/TopHeader/index.less +0 -0
- /package/{src → es}/ProLayout/style/style.less +0 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
|
+
var _excluded = ["popConfirm", "tooltip", "hasPermission", "noPermissionTitle"];
|
|
5
|
+
import { h, defineComponent, computed } from "vue";
|
|
6
|
+
import { Button, Tooltip, Popconfirm } from 'ant-design-vue';
|
|
7
|
+
import "ant-design-vue/es";
|
|
8
|
+
import { omit } from "lodash-es";
|
|
9
|
+
import { buttonProps } from "ant-design-vue/es/button/button";
|
|
10
|
+
import { usePermission } from '@jetlinks-web/hooks';
|
|
11
|
+
var definedProps = _objectSpread({
|
|
12
|
+
tooltip: {
|
|
13
|
+
type: Object
|
|
14
|
+
},
|
|
15
|
+
popConfirm: {
|
|
16
|
+
type: Object
|
|
17
|
+
},
|
|
18
|
+
hasPermission: {
|
|
19
|
+
type: [String, Array, Boolean],
|
|
20
|
+
default: undefined
|
|
21
|
+
},
|
|
22
|
+
style: {
|
|
23
|
+
type: Object
|
|
24
|
+
},
|
|
25
|
+
noPermissionTitle: {
|
|
26
|
+
type: String
|
|
27
|
+
}
|
|
28
|
+
}, omit(buttonProps(), 'icon'));
|
|
29
|
+
var PermissionButton = defineComponent({
|
|
30
|
+
name: 'PermissionButton',
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
slots: ['button', 'icon'],
|
|
33
|
+
props: definedProps,
|
|
34
|
+
setup: function setup(props, _ref) {
|
|
35
|
+
var slots = _ref.slots;
|
|
36
|
+
var popConfirm = props.popConfirm,
|
|
37
|
+
tooltip = props.tooltip;
|
|
38
|
+
var _usePermission = usePermission(props.hasPermission),
|
|
39
|
+
hasPerm = _usePermission.hasPerm;
|
|
40
|
+
var permission = computed(function () {
|
|
41
|
+
if (!props.hasPermission || props.hasPermission === true) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
return hasPerm.value;
|
|
45
|
+
});
|
|
46
|
+
var isPermission = computed(function () {
|
|
47
|
+
if ('hasPermission' in props && permission.value) {
|
|
48
|
+
return 'disabled' in props ? props.disabled : false;
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
});
|
|
52
|
+
var hasPopConfirm = computed(function () {
|
|
53
|
+
return !!popConfirm;
|
|
54
|
+
}); // 是否包含确认弹窗
|
|
55
|
+
var hasTooltip = computed(function () {
|
|
56
|
+
return !!tooltip;
|
|
57
|
+
}); // 是否包含文字提示
|
|
58
|
+
return function () {
|
|
59
|
+
var popConfirm = props.popConfirm,
|
|
60
|
+
tooltip = props.tooltip,
|
|
61
|
+
hasPermission = props.hasPermission,
|
|
62
|
+
noPermissionTitle = props.noPermissionTitle,
|
|
63
|
+
buttonProps = _objectWithoutProperties(props, _excluded);
|
|
64
|
+
var button = !slots.button ? h(Button, _objectSpread(_objectSpread({}, buttonProps), {}, {
|
|
65
|
+
disabled: isPermission.value
|
|
66
|
+
}), {
|
|
67
|
+
default: function _default() {
|
|
68
|
+
var _slots$default;
|
|
69
|
+
return slots === null || slots === void 0 ? void 0 : (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
|
|
70
|
+
},
|
|
71
|
+
icon: function icon() {
|
|
72
|
+
var _slots$icon;
|
|
73
|
+
return slots === null || slots === void 0 ? void 0 : (_slots$icon = slots.icon) === null || _slots$icon === void 0 ? void 0 : _slots$icon.call(slots);
|
|
74
|
+
}
|
|
75
|
+
}) : slots.button();
|
|
76
|
+
// 文字提示
|
|
77
|
+
var _tooltip = tooltip ? h(Tooltip, _extends(tooltip, {
|
|
78
|
+
disabled: isPermission.value
|
|
79
|
+
}), {
|
|
80
|
+
default: function _default() {
|
|
81
|
+
return button;
|
|
82
|
+
}
|
|
83
|
+
}) : undefined;
|
|
84
|
+
// 无权限
|
|
85
|
+
var noPermissionButton = !permission.value ? h(Tooltip, {
|
|
86
|
+
title: noPermissionTitle || '暂无权限,请联系管理员'
|
|
87
|
+
}, {
|
|
88
|
+
default: function _default() {
|
|
89
|
+
return button;
|
|
90
|
+
}
|
|
91
|
+
}) : undefined;
|
|
92
|
+
// 二次确认
|
|
93
|
+
var _popConfirm = popConfirm ? h(Popconfirm, _extends({
|
|
94
|
+
overlayStyle: {
|
|
95
|
+
width: '220px'
|
|
96
|
+
}
|
|
97
|
+
}, popConfirm, {
|
|
98
|
+
disabled: !permission.value || buttonProps.disabled
|
|
99
|
+
}), {
|
|
100
|
+
default: function _default() {
|
|
101
|
+
return tooltip ? _tooltip : button;
|
|
102
|
+
}
|
|
103
|
+
}) : undefined;
|
|
104
|
+
if (permission.value) {
|
|
105
|
+
if (hasPopConfirm.value) {
|
|
106
|
+
return _popConfirm;
|
|
107
|
+
}
|
|
108
|
+
if (hasTooltip.value) {
|
|
109
|
+
return _tooltip;
|
|
110
|
+
}
|
|
111
|
+
return button;
|
|
112
|
+
}
|
|
113
|
+
return noPermissionButton;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
export default PermissionButton;
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { Fragment as _Fragment, createVNode as _createVNode, isVNode as _isVNode } from "vue";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
5
|
+
var _excluded = ["pure", "onCollapse", "onOpenKeys", "onSelect", "onMenuClick"];
|
|
6
|
+
import SiderMenu, { siderMenuProps } from '../SiderMenu/SiderMenu';
|
|
7
|
+
import { computed, defineComponent, provide, reactive, watchEffect, toRefs, h } from 'vue';
|
|
8
|
+
import { defaultSettingProps } from '../defaultSettings';
|
|
9
|
+
import { baseHeaderProps } from '../TopHeader';
|
|
10
|
+
import Header, { headerViewProps } from './Header';
|
|
11
|
+
import useConfigInject from 'ant-design-vue/es/_util/hooks/useConfigInject';
|
|
12
|
+
import { pick } from 'lodash-es';
|
|
13
|
+
import { defaultRouteContext, routeContextInjectKey } from '../RouteContext';
|
|
14
|
+
import { getMenuFirstChildren, getSlot } from '../util';
|
|
15
|
+
import { Layout, LayoutContent } from 'ant-design-vue';
|
|
16
|
+
function _isSlot(s) {
|
|
17
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
|
|
18
|
+
}
|
|
19
|
+
export var basicLayoutProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultSettingProps), siderMenuProps), baseHeaderProps), headerViewProps), {}, {
|
|
20
|
+
pure: Boolean,
|
|
21
|
+
loading: Boolean,
|
|
22
|
+
locale: {
|
|
23
|
+
type: [Function, Boolean],
|
|
24
|
+
default: function _default() {
|
|
25
|
+
return function (s) {
|
|
26
|
+
return s;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* 是否禁用移动端模式,有的管理系统不需要移动端模式,此属性设置为true即可
|
|
32
|
+
*/
|
|
33
|
+
disableMobile: {
|
|
34
|
+
type: Boolean,
|
|
35
|
+
required: false
|
|
36
|
+
},
|
|
37
|
+
isChildrenLayout: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
required: false
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* 兼用 content 的 margin
|
|
43
|
+
*/
|
|
44
|
+
disableContentMargin: {
|
|
45
|
+
type: Boolean,
|
|
46
|
+
required: false
|
|
47
|
+
},
|
|
48
|
+
colSize: {
|
|
49
|
+
type: Number,
|
|
50
|
+
required: false
|
|
51
|
+
},
|
|
52
|
+
contentStyle: {
|
|
53
|
+
type: [String, Object],
|
|
54
|
+
default: function _default() {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
breadcrumb: {
|
|
59
|
+
type: [Object, Function],
|
|
60
|
+
default: function _default() {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
collapsedButtonRender: {
|
|
65
|
+
type: [Function, Object, Boolean],
|
|
66
|
+
default: function _default() {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
breadcrumbRender: {
|
|
71
|
+
type: [Object, Function, Boolean],
|
|
72
|
+
default: function _default() {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
headerContentRender: {
|
|
77
|
+
type: [Function, Object, Boolean],
|
|
78
|
+
default: function _default() {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
headerRender: {
|
|
83
|
+
type: [Object, Function, Boolean],
|
|
84
|
+
default: function _default() {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
export default defineComponent({
|
|
90
|
+
name: 'JProLayout',
|
|
91
|
+
inheritAttrs: false,
|
|
92
|
+
props: basicLayoutProps,
|
|
93
|
+
emits: ['update:collapsed', 'update:open-keys', 'update:selected-keys', 'collapse', 'openKeys', 'select', 'menuHeaderClick', 'menuClick', 'backClick'],
|
|
94
|
+
setup: function setup(props, _ref) {
|
|
95
|
+
var emit = _ref.emit,
|
|
96
|
+
attrs = _ref.attrs,
|
|
97
|
+
slots = _ref.slots;
|
|
98
|
+
var _useConfigInject = useConfigInject('layout', {}),
|
|
99
|
+
prefixCls = _useConfigInject.prefixCls;
|
|
100
|
+
var isTop = computed(function () {
|
|
101
|
+
return props.layout === 'top';
|
|
102
|
+
});
|
|
103
|
+
var hasSide = computed(function () {
|
|
104
|
+
return props.layout === 'mix' || props.layout === 'side' || false;
|
|
105
|
+
});
|
|
106
|
+
var hasSplitMenu = computed(function () {
|
|
107
|
+
return props.layout === 'mix' && props.splitMenus;
|
|
108
|
+
});
|
|
109
|
+
var hasFlatMenu = computed(function () {
|
|
110
|
+
return hasSide.value && hasSplitMenu.value;
|
|
111
|
+
});
|
|
112
|
+
var siderWidth = computed(function () {
|
|
113
|
+
return props.collapsed ? props.collapsedWidth : props.siderWidth;
|
|
114
|
+
});
|
|
115
|
+
var onCollapse = function onCollapse(collapsed) {
|
|
116
|
+
emit('update:collapsed', collapsed);
|
|
117
|
+
emit('collapse', collapsed);
|
|
118
|
+
};
|
|
119
|
+
var onOpenKeys = function onOpenKeys(openKeys) {
|
|
120
|
+
emit('update:open-keys', openKeys);
|
|
121
|
+
emit('openKeys', openKeys);
|
|
122
|
+
};
|
|
123
|
+
var onSelect = function onSelect(selectedKeys) {
|
|
124
|
+
emit('update:selected-keys', selectedKeys);
|
|
125
|
+
emit('select', selectedKeys);
|
|
126
|
+
};
|
|
127
|
+
var onMenuHeaderClick = function onMenuHeaderClick(e) {
|
|
128
|
+
emit('menuHeaderClick', e);
|
|
129
|
+
};
|
|
130
|
+
var onMenuClick = function onMenuClick(args) {
|
|
131
|
+
emit('menuClick', args);
|
|
132
|
+
};
|
|
133
|
+
var onBack = function onBack(args) {
|
|
134
|
+
emit('backClick', args);
|
|
135
|
+
};
|
|
136
|
+
var baseClassName = computed(function () {
|
|
137
|
+
return "".concat(props.prefixCls, "-basicLayout");
|
|
138
|
+
});
|
|
139
|
+
var className = computed(function () {
|
|
140
|
+
return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, baseClassName.value, true), "".concat(baseClassName.value, "-top-menu"), isTop.value), "".concat(baseClassName.value, "-is-children"), props.isChildrenLayout), "".concat(baseClassName.value, "-fix-siderbar"), props.fixSiderbar), "".concat(baseClassName.value, "-").concat(props.layout), props.layout);
|
|
141
|
+
});
|
|
142
|
+
var genLayoutStyle = reactive({
|
|
143
|
+
position: 'relative'
|
|
144
|
+
});
|
|
145
|
+
watchEffect(function () {
|
|
146
|
+
if (props.isChildrenLayout || props.contentStyle && props.contentStyle.minHeight) {
|
|
147
|
+
genLayoutStyle.minHeight = 0;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
var headerRender = function headerRender(p, matchMenuKeys) {
|
|
151
|
+
if (p.headerRender === false || p.pure) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
return h(Header, _objectSpread(_objectSpread({}, p), {}, {
|
|
155
|
+
matchMenuKeys: matchMenuKeys || []
|
|
156
|
+
}));
|
|
157
|
+
// <Header {...p} matchMenuKeys={matchMenuKeys || []} />;
|
|
158
|
+
};
|
|
159
|
+
var breadcrumb = computed(function () {
|
|
160
|
+
return _objectSpread(_objectSpread({}, props.breadcrumb), {}, {
|
|
161
|
+
itemRender: getSlot(slots, props, 'breadcrumbRender')
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
var flatMenuData = computed(function () {
|
|
165
|
+
return hasFlatMenu.value && props.selectedKeys && getMenuFirstChildren(props.menuData, props.selectedKeys[0]) || [];
|
|
166
|
+
});
|
|
167
|
+
var routeContext = reactive(_objectSpread(_objectSpread(_objectSpread({}, defaultRouteContext), pick(toRefs(props), ['pure', 'locale', 'menuData', 'openKeys', 'selectedKeys', 'contentWidth', 'disableMobile', 'fixSiderbar', 'fixedHeader', 'headerHeight'])), {}, {
|
|
168
|
+
siderWidth: siderWidth,
|
|
169
|
+
breadcrumb: breadcrumb,
|
|
170
|
+
flatMenuData: flatMenuData,
|
|
171
|
+
hasSide: hasSide,
|
|
172
|
+
back: onBack,
|
|
173
|
+
hasHeader: true,
|
|
174
|
+
flatMenu: hasFlatMenu
|
|
175
|
+
}));
|
|
176
|
+
provide(routeContextInjectKey, routeContext);
|
|
177
|
+
return function () {
|
|
178
|
+
var _slot;
|
|
179
|
+
var _slots$default, _slots$default2;
|
|
180
|
+
var pure = props.pure,
|
|
181
|
+
propsOnCollapse = props.onCollapse,
|
|
182
|
+
propsOnOpenKeys = props.onOpenKeys,
|
|
183
|
+
propsOnSelect = props.onSelect,
|
|
184
|
+
propsOnMenuClick = props.onMenuClick,
|
|
185
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
|
186
|
+
var collapsedButtonRender = getSlot(slots, props, 'collapsedButtonRender');
|
|
187
|
+
var headerContentRender = getSlot(slots, props, 'headerContentRender');
|
|
188
|
+
var rightContentRender = getSlot(slots, props, 'rightContentRender');
|
|
189
|
+
var customHeaderRender = getSlot(slots, props, 'headerRender');
|
|
190
|
+
// menu
|
|
191
|
+
var menuHeaderRender = getSlot(slots, props, 'menuHeaderRender');
|
|
192
|
+
var menuExtraRender = getSlot(slots, props, 'menuExtraRender');
|
|
193
|
+
var menuContentRender = getSlot(slots, props, 'menuContentRender');
|
|
194
|
+
var menuItemRender = getSlot(slots, props, 'menuItemRender');
|
|
195
|
+
var subMenuItemRender = getSlot(slots, props, 'subMenuItemRender');
|
|
196
|
+
var headerDom = computed(function () {
|
|
197
|
+
return headerRender(_objectSpread(_objectSpread({}, props), {}, {
|
|
198
|
+
menuItemRender: menuItemRender,
|
|
199
|
+
subMenuItemRender: subMenuItemRender,
|
|
200
|
+
hasSiderMenu: !isTop.value,
|
|
201
|
+
menuData: props.menuData,
|
|
202
|
+
onCollapse: onCollapse,
|
|
203
|
+
onOpenKeys: onOpenKeys,
|
|
204
|
+
onSelect: onSelect,
|
|
205
|
+
onMenuHeaderClick: onMenuHeaderClick,
|
|
206
|
+
rightContentRender: rightContentRender,
|
|
207
|
+
collapsedButtonRender: collapsedButtonRender,
|
|
208
|
+
headerTitleRender: menuHeaderRender,
|
|
209
|
+
menuExtraRender: menuExtraRender,
|
|
210
|
+
menuContentRender: menuContentRender,
|
|
211
|
+
headerContentRender: headerContentRender,
|
|
212
|
+
headerRender: customHeaderRender,
|
|
213
|
+
theme: (props.theme || 'dark').toLocaleLowerCase().includes('dark') ? 'dark' : 'light'
|
|
214
|
+
}), props.matchMenuKeys);
|
|
215
|
+
});
|
|
216
|
+
routeContext.hasHeader = !!headerDom.value;
|
|
217
|
+
var contentClassName = computed(function () {
|
|
218
|
+
return _defineProperty(_defineProperty(_defineProperty({}, "".concat(baseClassName.value, "-content"), true), "".concat(baseClassName.value, "-has-header"), headerDom), "".concat(baseClassName.value, "-content-disable-margin"), props.disableContentMargin);
|
|
219
|
+
});
|
|
220
|
+
return _createVNode(_Fragment, null, [pure ? (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots) : _createVNode("div", {
|
|
221
|
+
"class": className.value
|
|
222
|
+
}, [_createVNode(Layout, {
|
|
223
|
+
"style": _objectSpread({
|
|
224
|
+
minHeight: '100vh'
|
|
225
|
+
}, attrs.style || {})
|
|
226
|
+
}, {
|
|
227
|
+
default: function _default() {
|
|
228
|
+
return [headerDom.value, _createVNode(Layout, {
|
|
229
|
+
"style": genLayoutStyle,
|
|
230
|
+
"class": prefixCls.value
|
|
231
|
+
}, {
|
|
232
|
+
default: function _default() {
|
|
233
|
+
return [!isTop.value && _createVNode(SiderMenu, _objectSpread(_objectSpread({}, restProps), {}, {
|
|
234
|
+
"menuHeaderRender": menuHeaderRender,
|
|
235
|
+
"menuExtraRender": menuExtraRender,
|
|
236
|
+
"menuContentRender": menuContentRender,
|
|
237
|
+
"menuItemRender": menuItemRender,
|
|
238
|
+
"subMenuItemRender": subMenuItemRender,
|
|
239
|
+
"collapsedButtonRender": collapsedButtonRender,
|
|
240
|
+
"onCollapse": onCollapse,
|
|
241
|
+
"onSelect": onSelect,
|
|
242
|
+
"onOpenKeys": onOpenKeys,
|
|
243
|
+
"onMenuClick": onMenuClick
|
|
244
|
+
}), null), _createVNode(Layout, null, _isSlot(_slot = _createVNode(LayoutContent, null, {
|
|
245
|
+
default: function _default() {
|
|
246
|
+
return [(_slots$default2 = slots.default) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots)];
|
|
247
|
+
}
|
|
248
|
+
})) ? _slot : {
|
|
249
|
+
default: function _default() {
|
|
250
|
+
return [_slot];
|
|
251
|
+
}
|
|
252
|
+
})];
|
|
253
|
+
}
|
|
254
|
+
})];
|
|
255
|
+
}
|
|
256
|
+
})])]);
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
});
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createVNode as _createVNode, Fragment as _Fragment, isVNode as _isVNode } from "vue";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
|
+
import { baseHeaderProps, TopNavHeader } from '../TopHeader';
|
|
5
|
+
import PropTypes from 'ant-design-vue/es/_util/vue-types';
|
|
6
|
+
import { defineComponent, computed, toRefs } from 'vue';
|
|
7
|
+
import { useRouteContext } from '../RouteContext';
|
|
8
|
+
import { Layout } from 'ant-design-vue';
|
|
9
|
+
function _isSlot(s) {
|
|
10
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
|
|
11
|
+
}
|
|
12
|
+
export var headerViewProps = _objectSpread(_objectSpread({}, baseHeaderProps), {}, {
|
|
13
|
+
headerRender: {
|
|
14
|
+
type: [Object, Function, Boolean],
|
|
15
|
+
default: function _default() {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
headerTitleRender: {
|
|
20
|
+
type: [Object, Function, Boolean],
|
|
21
|
+
default: function _default() {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
headerContentRender: {
|
|
26
|
+
type: [Object, Function, Boolean],
|
|
27
|
+
default: function _default() {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
hasSiderMenu: PropTypes.looseBool,
|
|
32
|
+
siderWidth: PropTypes.number.def(208)
|
|
33
|
+
});
|
|
34
|
+
export default defineComponent({
|
|
35
|
+
name: 'HeaderView',
|
|
36
|
+
inheritAttrs: false,
|
|
37
|
+
props: headerViewProps,
|
|
38
|
+
setup: function setup(props) {
|
|
39
|
+
var _toRefs = toRefs(props),
|
|
40
|
+
prefixCls = _toRefs.prefixCls,
|
|
41
|
+
fixedHeader = _toRefs.fixedHeader,
|
|
42
|
+
headerHeight = _toRefs.headerHeight,
|
|
43
|
+
layout = _toRefs.layout,
|
|
44
|
+
theme = _toRefs.theme,
|
|
45
|
+
onCollapse = _toRefs.onCollapse;
|
|
46
|
+
var context = useRouteContext();
|
|
47
|
+
var needFixedHeader = computed(function () {
|
|
48
|
+
return fixedHeader.value || context.fixedHeader;
|
|
49
|
+
});
|
|
50
|
+
var isTop = computed(function () {
|
|
51
|
+
return layout.value === 'top';
|
|
52
|
+
});
|
|
53
|
+
var className = computed(function () {
|
|
54
|
+
return _defineProperty(_defineProperty({}, "".concat(prefixCls.value, "-fixed-header"), needFixedHeader.value), "".concat(prefixCls.value, "-top-menu"), isTop.value);
|
|
55
|
+
});
|
|
56
|
+
var renderContent = function renderContent() {
|
|
57
|
+
var defaultDom = _createVNode(TopNavHeader, _objectSpread(_objectSpread({
|
|
58
|
+
"theme": theme.value,
|
|
59
|
+
"mode": "horizontal"
|
|
60
|
+
}, props), {}, {
|
|
61
|
+
"onCollapse": onCollapse.value,
|
|
62
|
+
"menuData": context.menuData
|
|
63
|
+
}), null);
|
|
64
|
+
if (props.headerRender) {
|
|
65
|
+
return props.headerRender(props, defaultDom);
|
|
66
|
+
}
|
|
67
|
+
return defaultDom;
|
|
68
|
+
};
|
|
69
|
+
var right = computed(function () {
|
|
70
|
+
return needFixedHeader.value ? 0 : undefined;
|
|
71
|
+
});
|
|
72
|
+
return function () {
|
|
73
|
+
var _slot;
|
|
74
|
+
return _createVNode(_Fragment, null, [needFixedHeader.value && _createVNode(Layout.Header, {
|
|
75
|
+
"style": {
|
|
76
|
+
height: "".concat(headerHeight.value, "px"),
|
|
77
|
+
lineHeight: "".concat(headerHeight.value, "px"),
|
|
78
|
+
background: 'transparent'
|
|
79
|
+
}
|
|
80
|
+
}, null), _createVNode(Layout.Header, {
|
|
81
|
+
"style": {
|
|
82
|
+
padding: 0,
|
|
83
|
+
height: "".concat(headerHeight.value, "px"),
|
|
84
|
+
lineHeight: "".concat(headerHeight.value, "px"),
|
|
85
|
+
width: '100%',
|
|
86
|
+
zIndex: 100,
|
|
87
|
+
right: right.value
|
|
88
|
+
},
|
|
89
|
+
"class": className.value
|
|
90
|
+
}, _isSlot(_slot = renderContent()) ? _slot : {
|
|
91
|
+
default: function _default() {
|
|
92
|
+
return [_slot];
|
|
93
|
+
}
|
|
94
|
+
})]);
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
});
|