@jetlinks-web/components 2.0.5 → 2.0.7

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.
@@ -6,7 +6,7 @@
6
6
  } */
7
7
  import { defineComponent as _defineComponent } from 'vue';
8
8
  import { unref as _unref, renderSlot as _renderSlot, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
9
- const _withScopeId = n => (_pushScopeId("data-v-1713253708182"), n = n(), _popScopeId(), n);
9
+ const _withScopeId = n => (_pushScopeId("data-v-1713344574942"), n = n(), _popScopeId(), n);
10
10
  const _hoisted_1 = { class: "full-page-warp-content" };
11
11
  import { ref } from 'vue';
12
12
  import { useElementBounding } from '@vueuse/core';
@@ -5,14 +5,14 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
5
  var _excluded = ["pure", "onCollapse", "onOpenKeys", "onSelect", "onMenuClick"];
6
6
  import SiderMenu, { siderMenuProps } from '../SiderMenu/SiderMenu';
7
7
  import { computed, defineComponent, provide, reactive, watchEffect, toRefs, h } from 'vue';
8
- import { defaultSettingProps } from '../defaultSettings';
8
+ import { defaultSettingProps, LayoutType } from '../defaultSettings';
9
9
  import { baseHeaderProps } from '../TopHeader';
10
10
  import Header, { headerViewProps } from './Header';
11
11
  import useConfigInject from 'ant-design-vue/es/_util/hooks/useConfigInject';
12
12
  import { pick } from 'lodash-es';
13
13
  import { defaultRouteContext, routeContextInjectKey } from '../RouteContext';
14
14
  import { getMenuFirstChildren, getSlot } from '../util';
15
- import { Layout, LayoutContent } from 'ant-design-vue';
15
+ import { Layout, LayoutContent, Breadcrumb, Tabs } from 'ant-design-vue';
16
16
  function _isSlot(s) {
17
17
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
18
18
  }
@@ -90,7 +90,7 @@ export default defineComponent({
90
90
  name: 'JProLayout',
91
91
  inheritAttrs: false,
92
92
  props: basicLayoutProps,
93
- emits: ['update:collapsed', 'update:open-keys', 'update:selected-keys', 'collapse', 'openKeys', 'select', 'menuHeaderClick', 'menuClick', 'backClick'],
93
+ emits: ['update:collapsed', 'update:open-keys', 'update:selected-keys', 'update:active-key', 'collapse', 'openKeys', 'select', 'menuHeaderClick', 'menuClick', 'backClick', 'historyTabClick', 'historyTabEdit', 'appMenuClick'],
94
94
  setup: function setup(props, _ref) {
95
95
  var emit = _ref.emit,
96
96
  attrs = _ref.attrs,
@@ -133,6 +133,18 @@ export default defineComponent({
133
133
  var onBack = function onBack(args) {
134
134
  emit('backClick', args);
135
135
  };
136
+ var onTabClick = function onTabClick(args) {
137
+ emit('historyTabClick', args);
138
+ };
139
+ var onTabEdit = function onTabEdit(args) {
140
+ emit('historyTabEdit', args);
141
+ };
142
+ var onAppMenuClick = function onAppMenuClick(args) {
143
+ emit('appMenuClick', args);
144
+ };
145
+ var onTabChange = function onTabChange(key) {
146
+ emit('update:active-key', key);
147
+ };
136
148
  var baseClassName = computed(function () {
137
149
  return "".concat(props.prefixCls, "-basicLayout");
138
150
  });
@@ -171,12 +183,11 @@ export default defineComponent({
171
183
  hasSide: hasSide,
172
184
  back: onBack,
173
185
  hasHeader: true,
174
- flatMenu: hasFlatMenu
186
+ flatMenu: hasFlatMenu,
187
+ layoutType: props.layoutType
175
188
  }));
176
189
  provide(routeContextInjectKey, routeContext);
177
190
  return function () {
178
- var _slot;
179
- var _slots$default, _slots$default2;
180
191
  var pure = props.pure,
181
192
  propsOnCollapse = props.onCollapse,
182
193
  propsOnOpenKeys = props.onOpenKeys,
@@ -193,6 +204,7 @@ export default defineComponent({
193
204
  var menuContentRender = getSlot(slots, props, 'menuContentRender');
194
205
  var menuItemRender = getSlot(slots, props, 'menuItemRender');
195
206
  var subMenuItemRender = getSlot(slots, props, 'subMenuItemRender');
207
+ var linksRender = getSlot(slots, props, 'linksRender');
196
208
  var headerDom = computed(function () {
197
209
  return headerRender(_objectSpread(_objectSpread({}, props), {}, {
198
210
  menuItemRender: menuItemRender,
@@ -217,43 +229,132 @@ export default defineComponent({
217
229
  var contentClassName = computed(function () {
218
230
  return _defineProperty(_defineProperty(_defineProperty({}, "".concat(baseClassName.value, "-content"), true), "".concat(baseClassName.value, "-has-header"), headerDom), "".concat(baseClassName.value, "-content-disable-margin"), props.disableContentMargin);
219
231
  });
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
- })])]);
232
+ if (pure) {
233
+ var _slots$default;
234
+ return (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
235
+ }
236
+ if (props.layoutType === LayoutType.LIST) {
237
+ var _slot;
238
+ var _slots$default2;
239
+ return _createVNode(_Fragment, null, [_createVNode("div", {
240
+ "class": className.value
241
+ }, [_createVNode(Layout, {
242
+ "style": _objectSpread({
243
+ minHeight: '100vh'
244
+ }, attrs.style || {})
245
+ }, {
246
+ default: function _default() {
247
+ return [headerDom.value, _createVNode(Layout, {
248
+ "style": genLayoutStyle,
249
+ "class": prefixCls.value
250
+ }, {
251
+ default: function _default() {
252
+ return [!isTop.value && _createVNode(SiderMenu, _objectSpread(_objectSpread({}, restProps), {}, {
253
+ "menuHeaderRender": menuHeaderRender,
254
+ "menuExtraRender": menuExtraRender,
255
+ "menuContentRender": menuContentRender,
256
+ "menuItemRender": menuItemRender,
257
+ "subMenuItemRender": subMenuItemRender,
258
+ "collapsedButtonRender": collapsedButtonRender,
259
+ "onCollapse": onCollapse,
260
+ "onSelect": onSelect,
261
+ "onOpenKeys": onOpenKeys,
262
+ "onMenuClick": onMenuClick
263
+ }), null), _createVNode(Layout, null, _isSlot(_slot = _createVNode(LayoutContent, null, {
264
+ default: function _default() {
265
+ return [(_slots$default2 = slots.default) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots)];
266
+ }
267
+ })) ? _slot : {
268
+ default: function _default() {
269
+ return [_slot];
270
+ }
271
+ })];
272
+ }
273
+ })];
274
+ }
275
+ })])]);
276
+ } else {
277
+ var _slots$default3;
278
+ var _slot2, _slot3, _slot4;
279
+ return _createVNode(_Fragment, null, [_createVNode("div", {
280
+ "class": className.value
281
+ }, [_createVNode(Layout, null, {
282
+ default: function _default() {
283
+ return [_createVNode(SiderMenu, _objectSpread(_objectSpread({}, restProps), {}, {
284
+ "siderWidth": props.cardSiderWidth,
285
+ "headerHeight": 0,
286
+ "menuHeaderRender": menuHeaderRender,
287
+ "menuExtraRender": menuExtraRender,
288
+ "linksRender": linksRender,
289
+ "menuContentRender": menuContentRender,
290
+ "menuItemRender": menuItemRender,
291
+ "subMenuItemRender": subMenuItemRender,
292
+ "onCollapse": onCollapse,
293
+ "onSelect": onSelect,
294
+ "onOpenKeys": onOpenKeys,
295
+ "onMenuClick": onMenuClick,
296
+ "onAppMenuClick": onAppMenuClick
297
+ }), null), _createVNode(Layout, null, {
298
+ default: function _default() {
299
+ return [_createVNode(Layout.Header, {
300
+ "style": {
301
+ background: 'transparent',
302
+ padding: 0,
303
+ height: '40px'
304
+ }
305
+ }, _isSlot(_slot3 = _createVNode(Tabs, {
306
+ "hide-add": true,
307
+ "type": "editable-card",
308
+ "class": "history-tabs",
309
+ "id": 'history-route-tabs',
310
+ "tabBarStyle": {
311
+ margin: 0
312
+ },
313
+ "onTabClick": onTabClick,
314
+ "onEdit": onTabEdit,
315
+ "activeKey": props.historyActive,
316
+ "onChange": onTabChange
317
+ }, _isSlot(_slot2 = props.historyRoutes.map(function (item) {
318
+ return _createVNode(Tabs.TabPane, {
319
+ "key": item.name,
320
+ "tab": item.label,
321
+ "closable": true
322
+ }, null);
323
+ })) ? _slot2 : {
324
+ default: function _default() {
325
+ return [_slot2];
326
+ }
327
+ })) ? _slot3 : {
328
+ default: function _default() {
329
+ return [_slot3];
330
+ }
331
+ }), _createVNode(LayoutContent, {
332
+ "style": {
333
+ height: "calc(100vh - 88px)"
334
+ }
335
+ }, {
336
+ default: function _default() {
337
+ return [(_slots$default3 = slots.default) === null || _slots$default3 === void 0 ? void 0 : _slots$default3.call(slots)];
338
+ }
339
+ }), _createVNode(Layout.Footer, {
340
+ "style": {
341
+ padding: '11px 24px'
342
+ }
343
+ }, _isSlot(_slot4 = _createVNode("div", {
344
+ "style": props.pageFooterStyle
345
+ }, [_createVNode(Breadcrumb, {
346
+ "routes": props.breadcrumb.routes,
347
+ "itemRender": props.breadcrumbRender
348
+ }, null)])) ? _slot4 : {
349
+ default: function _default() {
350
+ return [_slot4];
351
+ }
352
+ })];
353
+ }
354
+ })];
355
+ }
356
+ })])]);
357
+ }
257
358
  };
258
359
  }
259
360
  });
@@ -13,7 +13,6 @@ import { useRouteContext } from '../RouteContext';
13
13
  import { getSlotVNode } from '../util';
14
14
  import 'ant-design-vue/es/_util/type';
15
15
  import PropTypes from 'ant-design-vue/es/_util/vue-types';
16
- import './index.less';
17
16
  function _isSlot(s) {
18
17
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
19
18
  }
@@ -1,14 +1,15 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
- import { createVNode as _createVNode, isVNode as _isVNode, Fragment as _Fragment } from "vue";
3
+ import { createVNode as _createVNode, resolveDirective as _resolveDirective, isVNode as _isVNode, Fragment as _Fragment } from "vue";
4
4
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
- import { LayoutSider as Sider, Menu } from 'ant-design-vue';
5
+ import { LayoutSider as Sider, Menu, Tooltip } from 'ant-design-vue';
6
6
  import BaseMenu, { baseMenuProps } from './BaseMenu';
7
- import { defaultSettingProps } from '../defaultSettings';
7
+ import { defaultSettingProps, LayoutType } from '../defaultSettings';
8
8
  import PropTypes from 'ant-design-vue/es/_util/vue-types';
9
9
  import IconFont from '../../Icon';
10
10
  import { useRouteContext } from '../RouteContext';
11
11
  import { computed, unref } from 'vue';
12
+ import "../typings";
12
13
  function _isSlot(s) {
13
14
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
14
15
  }
@@ -52,6 +53,12 @@ export var siderMenuProps = _objectSpread(_objectSpread(_objectSpread({}, defaul
52
53
  return undefined;
53
54
  }
54
55
  },
56
+ linksRender: {
57
+ type: [Function, Object, Boolean],
58
+ default: function _default() {
59
+ return undefined;
60
+ }
61
+ },
55
62
  breakpoint: {
56
63
  type: [Object, Boolean],
57
64
  default: function _default() {
@@ -103,12 +110,37 @@ export var defaultRenderLogoAndTitle = function defaultRenderLogoAndTitle(props)
103
110
  logo = _props$logo === void 0 ? 'http://demo.jetlinks.cn/static/logo.760eb65c.png' : _props$logo,
104
111
  logoStyle = props.logoStyle,
105
112
  title = props.title,
106
- layout = props.layout;
113
+ layout = props.layout,
114
+ apps = props.apps,
115
+ baseClassName = props.baseClassName;
116
+ var logoDom = defaultRenderLogo(logo, logoStyle);
107
117
  var renderFunction = props[renderKey || ''];
118
+ if (props.layoutType === LayoutType.CARD) {
119
+ return _createVNode("a", null, [apps.length ? _createVNode(Tooltip, {
120
+ "placement": "rightTop",
121
+ "color": "#fff",
122
+ "arrowPointAtCenter": true
123
+ }, {
124
+ default: function _default() {
125
+ return [logoDom];
126
+ },
127
+ title: function title() {
128
+ return apps.map(function (item) {
129
+ return _createVNode("div", {
130
+ "class": "sider-app-menus"
131
+ }, [_createVNode("div", {
132
+ "class": "sider-app-menus-item",
133
+ "onClick": function onClick() {
134
+ return props.onAppMenuClick(item);
135
+ }
136
+ }, [item.label])]);
137
+ });
138
+ }
139
+ }) : logoDom]);
140
+ }
108
141
  if (layout === 'mix' && renderFunction === false) {
109
142
  return null;
110
143
  }
111
- var logoDom = defaultRenderLogo(logo, logoStyle);
112
144
  var titleDom = _createVNode("h1", null, _isSlot(title) ? title : {
113
145
  default: function _default() {
114
146
  return [title];
@@ -151,6 +183,7 @@ var SiderMenu = function SiderMenu(props) {
151
183
  menuContentRender = _props$menuContentRen === void 0 ? false : _props$menuContentRen,
152
184
  _props$collapsedButto = props.collapsedButtonRender,
153
185
  collapsedButtonRender = _props$collapsedButto === void 0 ? defaultRenderCollapsedButton : _props$collapsedButto,
186
+ linksRender = props.linksRender,
154
187
  theme = props.theme;
155
188
  var context = useRouteContext();
156
189
  var getPrefixCls = context.getPrefixCls;
@@ -173,9 +206,11 @@ var SiderMenu = function SiderMenu(props) {
173
206
  props.onSelect($event);
174
207
  }
175
208
  };
176
- var headerDom = defaultRenderLogoAndTitle(props);
209
+ var headerDom = defaultRenderLogoAndTitle(_objectSpread(_objectSpread({}, props), {}, {
210
+ baseClassName: baseClassName
211
+ }));
177
212
  var extraDom = menuExtraRender && menuExtraRender(props);
178
- if (hasSplitMenu.value && unref(context.flatMenuData).length === 0) {
213
+ if (props.layoutType !== LayoutType.CARD && hasSplitMenu.value && unref(context.flatMenuData).length === 0) {
179
214
  return null;
180
215
  }
181
216
  var defaultMenuDom = _createVNode(BaseMenu, {
@@ -245,9 +280,9 @@ var SiderMenu = function SiderMenu(props) {
245
280
  }
246
281
  }), _createVNode("div", {
247
282
  "style": "flex: 1; overflow: hidden auto;"
248
- }, [menuContentRender && menuContentRender(props, defaultMenuDom) || defaultMenuDom]), _createVNode("div", {
283
+ }, [props.layoutType === LayoutType.LIST ? menuContentRender && menuContentRender(props, defaultMenuDom) || defaultMenuDom : null]), _createVNode("div", {
249
284
  "class": "".concat(baseClassName, "-links")
250
- }, [collapsedButtonRender !== false ? _createVNode(Menu, {
285
+ }, [linksRender ? linksRender() : collapsedButtonRender !== false ? _createVNode(Menu, {
251
286
  "class": "".concat(baseClassName, "-link-menu"),
252
287
  "inlineIndent": 16,
253
288
  "theme": theme,