@jetlinks-web/components 2.0.5 → 2.0.6

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-1713333270029"), 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,
@@ -217,43 +228,131 @@ export default defineComponent({
217
228
  var contentClassName = computed(function () {
218
229
  return _defineProperty(_defineProperty(_defineProperty({}, "".concat(baseClassName.value, "-content"), true), "".concat(baseClassName.value, "-has-header"), headerDom), "".concat(baseClassName.value, "-content-disable-margin"), props.disableContentMargin);
219
230
  });
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
- })])]);
231
+ if (pure) {
232
+ var _slots$default;
233
+ return (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
234
+ }
235
+ if (props.layoutType === LayoutType.LIST) {
236
+ var _slot;
237
+ var _slots$default2;
238
+ return _createVNode(_Fragment, null, [_createVNode("div", {
239
+ "class": className.value
240
+ }, [_createVNode(Layout, {
241
+ "style": _objectSpread({
242
+ minHeight: '100vh'
243
+ }, attrs.style || {})
244
+ }, {
245
+ default: function _default() {
246
+ return [headerDom.value, _createVNode(Layout, {
247
+ "style": genLayoutStyle,
248
+ "class": prefixCls.value
249
+ }, {
250
+ default: function _default() {
251
+ return [!isTop.value && _createVNode(SiderMenu, _objectSpread(_objectSpread({}, restProps), {}, {
252
+ "menuHeaderRender": menuHeaderRender,
253
+ "menuExtraRender": menuExtraRender,
254
+ "menuContentRender": menuContentRender,
255
+ "menuItemRender": menuItemRender,
256
+ "subMenuItemRender": subMenuItemRender,
257
+ "collapsedButtonRender": collapsedButtonRender,
258
+ "onCollapse": onCollapse,
259
+ "onSelect": onSelect,
260
+ "onOpenKeys": onOpenKeys,
261
+ "onMenuClick": onMenuClick
262
+ }), null), _createVNode(Layout, null, _isSlot(_slot = _createVNode(LayoutContent, null, {
263
+ default: function _default() {
264
+ return [(_slots$default2 = slots.default) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots)];
265
+ }
266
+ })) ? _slot : {
267
+ default: function _default() {
268
+ return [_slot];
269
+ }
270
+ })];
271
+ }
272
+ })];
273
+ }
274
+ })])]);
275
+ } else {
276
+ var _slots$default3;
277
+ var _slot2, _slot3, _slot4;
278
+ return _createVNode(_Fragment, null, [_createVNode("div", {
279
+ "class": className.value
280
+ }, [_createVNode(Layout, null, {
281
+ default: function _default() {
282
+ return [_createVNode(SiderMenu, _objectSpread(_objectSpread({}, restProps), {}, {
283
+ "siderWidth": props.cardSiderWidth,
284
+ "headerHeight": 0,
285
+ "menuHeaderRender": menuHeaderRender,
286
+ "menuExtraRender": menuExtraRender,
287
+ "menuContentRender": menuContentRender,
288
+ "menuItemRender": menuItemRender,
289
+ "subMenuItemRender": subMenuItemRender,
290
+ "onCollapse": onCollapse,
291
+ "onSelect": onSelect,
292
+ "onOpenKeys": onOpenKeys,
293
+ "onMenuClick": onMenuClick,
294
+ "onAppMenuClick": onAppMenuClick
295
+ }), null), _createVNode(Layout, null, {
296
+ default: function _default() {
297
+ return [_createVNode(Layout.Header, {
298
+ "style": {
299
+ background: 'transparent',
300
+ padding: 0,
301
+ height: '40px'
302
+ }
303
+ }, _isSlot(_slot3 = _createVNode(Tabs, {
304
+ "hide-add": true,
305
+ "type": "editable-card",
306
+ "class": "history-tabs",
307
+ "id": 'history-route-tabs',
308
+ "tabBarStyle": {
309
+ margin: 0
310
+ },
311
+ "onTabClick": onTabClick,
312
+ "onEdit": onTabEdit,
313
+ "activeKey": props.historyActive,
314
+ "onChange": onTabChange
315
+ }, _isSlot(_slot2 = props.historyRoutes.map(function (item) {
316
+ return _createVNode(Tabs.TabPane, {
317
+ "key": item.name,
318
+ "tab": item.label,
319
+ "closable": true
320
+ }, null);
321
+ })) ? _slot2 : {
322
+ default: function _default() {
323
+ return [_slot2];
324
+ }
325
+ })) ? _slot3 : {
326
+ default: function _default() {
327
+ return [_slot3];
328
+ }
329
+ }), _createVNode(LayoutContent, {
330
+ "style": {
331
+ height: "calc(100vh - 88px)"
332
+ }
333
+ }, {
334
+ default: function _default() {
335
+ return [(_slots$default3 = slots.default) === null || _slots$default3 === void 0 ? void 0 : _slots$default3.call(slots)];
336
+ }
337
+ }), _createVNode(Layout.Footer, {
338
+ "style": {
339
+ padding: '11px 24px'
340
+ }
341
+ }, _isSlot(_slot4 = _createVNode("div", {
342
+ "style": props.pageFooterStyle
343
+ }, [_createVNode(Breadcrumb, {
344
+ "routes": props.breadcrumb.routes,
345
+ "itemRender": props.breadcrumbRender
346
+ }, null)])) ? _slot4 : {
347
+ default: function _default() {
348
+ return [_slot4];
349
+ }
350
+ })];
351
+ }
352
+ })];
353
+ }
354
+ })])]);
355
+ }
257
356
  };
258
357
  }
259
358
  });
@@ -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,10 +1,10 @@
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';
@@ -103,12 +103,37 @@ export var defaultRenderLogoAndTitle = function defaultRenderLogoAndTitle(props)
103
103
  logo = _props$logo === void 0 ? 'http://demo.jetlinks.cn/static/logo.760eb65c.png' : _props$logo,
104
104
  logoStyle = props.logoStyle,
105
105
  title = props.title,
106
- layout = props.layout;
106
+ layout = props.layout,
107
+ apps = props.apps,
108
+ baseClassName = props.baseClassName;
109
+ var logoDom = defaultRenderLogo(logo, logoStyle);
107
110
  var renderFunction = props[renderKey || ''];
111
+ if (props.layoutType === LayoutType.CARD) {
112
+ return _createVNode("a", null, [apps.length ? _createVNode(Tooltip, {
113
+ "placement": "rightTop",
114
+ "color": "#fff",
115
+ "arrowPointAtCenter": true
116
+ }, {
117
+ default: function _default() {
118
+ return [logoDom];
119
+ },
120
+ title: function title() {
121
+ return apps.map(function (item) {
122
+ return _createVNode("div", {
123
+ "class": "sider-app-menus"
124
+ }, [_createVNode("div", {
125
+ "class": "sider-app-menus-item",
126
+ "onClick": function onClick() {
127
+ return props.onAppMenuClick(item);
128
+ }
129
+ }, [item.label])]);
130
+ });
131
+ }
132
+ }) : logoDom]);
133
+ }
108
134
  if (layout === 'mix' && renderFunction === false) {
109
135
  return null;
110
136
  }
111
- var logoDom = defaultRenderLogo(logo, logoStyle);
112
137
  var titleDom = _createVNode("h1", null, _isSlot(title) ? title : {
113
138
  default: function _default() {
114
139
  return [title];
@@ -173,9 +198,11 @@ var SiderMenu = function SiderMenu(props) {
173
198
  props.onSelect($event);
174
199
  }
175
200
  };
176
- var headerDom = defaultRenderLogoAndTitle(props);
201
+ var headerDom = defaultRenderLogoAndTitle(_objectSpread(_objectSpread({}, props), {}, {
202
+ baseClassName: baseClassName
203
+ }));
177
204
  var extraDom = menuExtraRender && menuExtraRender(props);
178
- if (hasSplitMenu.value && unref(context.flatMenuData).length === 0) {
205
+ if (props.layoutType !== LayoutType.CARD && hasSplitMenu.value && unref(context.flatMenuData).length === 0) {
179
206
  return null;
180
207
  }
181
208
  var defaultMenuDom = _createVNode(BaseMenu, {
@@ -245,7 +272,7 @@ var SiderMenu = function SiderMenu(props) {
245
272
  }
246
273
  }), _createVNode("div", {
247
274
  "style": "flex: 1; overflow: hidden auto;"
248
- }, [menuContentRender && menuContentRender(props, defaultMenuDom) || defaultMenuDom]), _createVNode("div", {
275
+ }, [props.layoutType === LayoutType.LIST ? menuContentRender && menuContentRender(props, defaultMenuDom) || defaultMenuDom : null]), _createVNode("div", {
249
276
  "class": "".concat(baseClassName, "-links")
250
277
  }, [collapsedButtonRender !== false ? _createVNode(Menu, {
251
278
  "class": "".concat(baseClassName, "-link-menu"),