@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.
@@ -99,7 +99,7 @@ var _default2 = exports.default = (0, _vue.defineComponent)({
99
99
  name: 'JProLayout',
100
100
  inheritAttrs: false,
101
101
  props: basicLayoutProps,
102
- emits: ['update:collapsed', 'update:open-keys', 'update:selected-keys', 'collapse', 'openKeys', 'select', 'menuHeaderClick', 'menuClick', 'backClick'],
102
+ emits: ['update:collapsed', 'update:open-keys', 'update:selected-keys', 'update:active-key', 'collapse', 'openKeys', 'select', 'menuHeaderClick', 'menuClick', 'backClick', 'historyTabClick', 'historyTabEdit', 'appMenuClick'],
103
103
  setup: function setup(props, _ref) {
104
104
  var emit = _ref.emit,
105
105
  attrs = _ref.attrs,
@@ -142,6 +142,18 @@ var _default2 = exports.default = (0, _vue.defineComponent)({
142
142
  var onBack = function onBack(args) {
143
143
  emit('backClick', args);
144
144
  };
145
+ var onTabClick = function onTabClick(args) {
146
+ emit('historyTabClick', args);
147
+ };
148
+ var onTabEdit = function onTabEdit(args) {
149
+ emit('historyTabEdit', args);
150
+ };
151
+ var onAppMenuClick = function onAppMenuClick(args) {
152
+ emit('appMenuClick', args);
153
+ };
154
+ var onTabChange = function onTabChange(key) {
155
+ emit('update:active-key', key);
156
+ };
145
157
  var baseClassName = (0, _vue.computed)(function () {
146
158
  return "".concat(props.prefixCls, "-basicLayout");
147
159
  });
@@ -180,12 +192,11 @@ var _default2 = exports.default = (0, _vue.defineComponent)({
180
192
  hasSide: hasSide,
181
193
  back: onBack,
182
194
  hasHeader: true,
183
- flatMenu: hasFlatMenu
195
+ flatMenu: hasFlatMenu,
196
+ layoutType: props.layoutType
184
197
  }));
185
198
  (0, _vue.provide)(_RouteContext.routeContextInjectKey, routeContext);
186
199
  return function () {
187
- var _slot;
188
- var _slots$default, _slots$default2;
189
200
  var pure = props.pure,
190
201
  propsOnCollapse = props.onCollapse,
191
202
  propsOnOpenKeys = props.onOpenKeys,
@@ -202,6 +213,7 @@ var _default2 = exports.default = (0, _vue.defineComponent)({
202
213
  var menuContentRender = (0, _util.getSlot)(slots, props, 'menuContentRender');
203
214
  var menuItemRender = (0, _util.getSlot)(slots, props, 'menuItemRender');
204
215
  var subMenuItemRender = (0, _util.getSlot)(slots, props, 'subMenuItemRender');
216
+ var linksRender = (0, _util.getSlot)(slots, props, 'linksRender');
205
217
  var headerDom = (0, _vue.computed)(function () {
206
218
  return headerRender((0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
207
219
  menuItemRender: menuItemRender,
@@ -226,43 +238,132 @@ var _default2 = exports.default = (0, _vue.defineComponent)({
226
238
  var contentClassName = (0, _vue.computed)(function () {
227
239
  return (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(baseClassName.value, "-content"), true), "".concat(baseClassName.value, "-has-header"), headerDom), "".concat(baseClassName.value, "-content-disable-margin"), props.disableContentMargin);
228
240
  });
229
- return (0, _vue.createVNode)(_vue.Fragment, null, [pure ? (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots) : (0, _vue.createVNode)("div", {
230
- "class": className.value
231
- }, [(0, _vue.createVNode)(_antDesignVue.Layout, {
232
- "style": (0, _objectSpread2.default)({
233
- minHeight: '100vh'
234
- }, attrs.style || {})
235
- }, {
236
- default: function _default() {
237
- return [headerDom.value, (0, _vue.createVNode)(_antDesignVue.Layout, {
238
- "style": genLayoutStyle,
239
- "class": prefixCls.value
240
- }, {
241
- default: function _default() {
242
- return [!isTop.value && (0, _vue.createVNode)(_SiderMenu.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), {}, {
243
- "menuHeaderRender": menuHeaderRender,
244
- "menuExtraRender": menuExtraRender,
245
- "menuContentRender": menuContentRender,
246
- "menuItemRender": menuItemRender,
247
- "subMenuItemRender": subMenuItemRender,
248
- "collapsedButtonRender": collapsedButtonRender,
249
- "onCollapse": onCollapse,
250
- "onSelect": onSelect,
251
- "onOpenKeys": onOpenKeys,
252
- "onMenuClick": onMenuClick
253
- }), null), (0, _vue.createVNode)(_antDesignVue.Layout, null, _isSlot(_slot = (0, _vue.createVNode)(_antDesignVue.LayoutContent, null, {
254
- default: function _default() {
255
- return [(_slots$default2 = slots.default) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots)];
256
- }
257
- })) ? _slot : {
258
- default: function _default() {
259
- return [_slot];
260
- }
261
- })];
262
- }
263
- })];
264
- }
265
- })])]);
241
+ if (pure) {
242
+ var _slots$default;
243
+ return (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
244
+ }
245
+ if (props.layoutType === _defaultSettings.LayoutType.LIST) {
246
+ var _slot;
247
+ var _slots$default2;
248
+ return (0, _vue.createVNode)(_vue.Fragment, null, [(0, _vue.createVNode)("div", {
249
+ "class": className.value
250
+ }, [(0, _vue.createVNode)(_antDesignVue.Layout, {
251
+ "style": (0, _objectSpread2.default)({
252
+ minHeight: '100vh'
253
+ }, attrs.style || {})
254
+ }, {
255
+ default: function _default() {
256
+ return [headerDom.value, (0, _vue.createVNode)(_antDesignVue.Layout, {
257
+ "style": genLayoutStyle,
258
+ "class": prefixCls.value
259
+ }, {
260
+ default: function _default() {
261
+ return [!isTop.value && (0, _vue.createVNode)(_SiderMenu.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), {}, {
262
+ "menuHeaderRender": menuHeaderRender,
263
+ "menuExtraRender": menuExtraRender,
264
+ "menuContentRender": menuContentRender,
265
+ "menuItemRender": menuItemRender,
266
+ "subMenuItemRender": subMenuItemRender,
267
+ "collapsedButtonRender": collapsedButtonRender,
268
+ "onCollapse": onCollapse,
269
+ "onSelect": onSelect,
270
+ "onOpenKeys": onOpenKeys,
271
+ "onMenuClick": onMenuClick
272
+ }), null), (0, _vue.createVNode)(_antDesignVue.Layout, null, _isSlot(_slot = (0, _vue.createVNode)(_antDesignVue.LayoutContent, null, {
273
+ default: function _default() {
274
+ return [(_slots$default2 = slots.default) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots)];
275
+ }
276
+ })) ? _slot : {
277
+ default: function _default() {
278
+ return [_slot];
279
+ }
280
+ })];
281
+ }
282
+ })];
283
+ }
284
+ })])]);
285
+ } else {
286
+ var _slots$default3;
287
+ var _slot2, _slot3, _slot4;
288
+ return (0, _vue.createVNode)(_vue.Fragment, null, [(0, _vue.createVNode)("div", {
289
+ "class": className.value
290
+ }, [(0, _vue.createVNode)(_antDesignVue.Layout, null, {
291
+ default: function _default() {
292
+ return [(0, _vue.createVNode)(_SiderMenu.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), {}, {
293
+ "siderWidth": props.cardSiderWidth,
294
+ "headerHeight": 0,
295
+ "menuHeaderRender": menuHeaderRender,
296
+ "menuExtraRender": menuExtraRender,
297
+ "linksRender": linksRender,
298
+ "menuContentRender": menuContentRender,
299
+ "menuItemRender": menuItemRender,
300
+ "subMenuItemRender": subMenuItemRender,
301
+ "onCollapse": onCollapse,
302
+ "onSelect": onSelect,
303
+ "onOpenKeys": onOpenKeys,
304
+ "onMenuClick": onMenuClick,
305
+ "onAppMenuClick": onAppMenuClick
306
+ }), null), (0, _vue.createVNode)(_antDesignVue.Layout, null, {
307
+ default: function _default() {
308
+ return [(0, _vue.createVNode)(_antDesignVue.Layout.Header, {
309
+ "style": {
310
+ background: 'transparent',
311
+ padding: 0,
312
+ height: '40px'
313
+ }
314
+ }, _isSlot(_slot3 = (0, _vue.createVNode)(_antDesignVue.Tabs, {
315
+ "hide-add": true,
316
+ "type": "editable-card",
317
+ "class": "history-tabs",
318
+ "id": 'history-route-tabs',
319
+ "tabBarStyle": {
320
+ margin: 0
321
+ },
322
+ "onTabClick": onTabClick,
323
+ "onEdit": onTabEdit,
324
+ "activeKey": props.historyActive,
325
+ "onChange": onTabChange
326
+ }, _isSlot(_slot2 = props.historyRoutes.map(function (item) {
327
+ return (0, _vue.createVNode)(_antDesignVue.Tabs.TabPane, {
328
+ "key": item.name,
329
+ "tab": item.label,
330
+ "closable": true
331
+ }, null);
332
+ })) ? _slot2 : {
333
+ default: function _default() {
334
+ return [_slot2];
335
+ }
336
+ })) ? _slot3 : {
337
+ default: function _default() {
338
+ return [_slot3];
339
+ }
340
+ }), (0, _vue.createVNode)(_antDesignVue.LayoutContent, {
341
+ "style": {
342
+ height: "calc(100vh - 88px)"
343
+ }
344
+ }, {
345
+ default: function _default() {
346
+ return [(_slots$default3 = slots.default) === null || _slots$default3 === void 0 ? void 0 : _slots$default3.call(slots)];
347
+ }
348
+ }), (0, _vue.createVNode)(_antDesignVue.Layout.Footer, {
349
+ "style": {
350
+ padding: '11px 24px'
351
+ }
352
+ }, _isSlot(_slot4 = (0, _vue.createVNode)("div", {
353
+ "style": props.pageFooterStyle
354
+ }, [(0, _vue.createVNode)(_antDesignVue.Breadcrumb, {
355
+ "routes": props.breadcrumb.routes,
356
+ "itemRender": props.breadcrumbRender
357
+ }, null)])) ? _slot4 : {
358
+ default: function _default() {
359
+ return [_slot4];
360
+ }
361
+ })];
362
+ }
363
+ })];
364
+ }
365
+ })])]);
366
+ }
266
367
  };
267
368
  }
268
369
  });
@@ -15,7 +15,6 @@ var _pageHeader = require("ant-design-vue/es/page-header");
15
15
  var _RouteContext = require("../RouteContext");
16
16
  var _util = require("../util");
17
17
  var _vueTypes = _interopRequireDefault(require("ant-design-vue/es/_util/vue-types"));
18
- require("./index.less");
19
18
  var _excluded = ["title", "tabList", "tabActiveKey", "content", "pageHeaderRender", "header", "extraContent", "prefixedClassName", "prefixCls", "fixedHeader", "showBack"];
20
19
  function _isSlot(s) {
21
20
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !(0, _vue.isVNode)(s);
@@ -16,6 +16,7 @@ var _defaultSettings = require("../defaultSettings");
16
16
  var _vueTypes = _interopRequireDefault(require("ant-design-vue/es/_util/vue-types"));
17
17
  var _Icon = _interopRequireDefault(require("../../Icon"));
18
18
  var _RouteContext = require("../RouteContext");
19
+ require("../typings");
19
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
22
  function _isSlot(s) {
@@ -61,6 +62,12 @@ var siderMenuProps = exports.siderMenuProps = (0, _objectSpread2.default)((0, _o
61
62
  return undefined;
62
63
  }
63
64
  },
65
+ linksRender: {
66
+ type: [Function, Object, Boolean],
67
+ default: function _default() {
68
+ return undefined;
69
+ }
70
+ },
64
71
  breakpoint: {
65
72
  type: [Object, Boolean],
66
73
  default: function _default() {
@@ -112,12 +119,37 @@ var defaultRenderLogoAndTitle = exports.defaultRenderLogoAndTitle = function def
112
119
  logo = _props$logo === void 0 ? 'http://demo.jetlinks.cn/static/logo.760eb65c.png' : _props$logo,
113
120
  logoStyle = props.logoStyle,
114
121
  title = props.title,
115
- layout = props.layout;
122
+ layout = props.layout,
123
+ apps = props.apps,
124
+ baseClassName = props.baseClassName;
125
+ var logoDom = defaultRenderLogo(logo, logoStyle);
116
126
  var renderFunction = props[renderKey || ''];
127
+ if (props.layoutType === _defaultSettings.LayoutType.CARD) {
128
+ return (0, _vue.createVNode)("a", null, [apps.length ? (0, _vue.createVNode)(_antDesignVue.Tooltip, {
129
+ "placement": "rightTop",
130
+ "color": "#fff",
131
+ "arrowPointAtCenter": true
132
+ }, {
133
+ default: function _default() {
134
+ return [logoDom];
135
+ },
136
+ title: function title() {
137
+ return apps.map(function (item) {
138
+ return (0, _vue.createVNode)("div", {
139
+ "class": "sider-app-menus"
140
+ }, [(0, _vue.createVNode)("div", {
141
+ "class": "sider-app-menus-item",
142
+ "onClick": function onClick() {
143
+ return props.onAppMenuClick(item);
144
+ }
145
+ }, [item.label])]);
146
+ });
147
+ }
148
+ }) : logoDom]);
149
+ }
117
150
  if (layout === 'mix' && renderFunction === false) {
118
151
  return null;
119
152
  }
120
- var logoDom = defaultRenderLogo(logo, logoStyle);
121
153
  var titleDom = (0, _vue.createVNode)("h1", null, _isSlot(title) ? title : {
122
154
  default: function _default() {
123
155
  return [title];
@@ -160,6 +192,7 @@ var SiderMenu = function SiderMenu(props) {
160
192
  menuContentRender = _props$menuContentRen === void 0 ? false : _props$menuContentRen,
161
193
  _props$collapsedButto = props.collapsedButtonRender,
162
194
  collapsedButtonRender = _props$collapsedButto === void 0 ? defaultRenderCollapsedButton : _props$collapsedButto,
195
+ linksRender = props.linksRender,
163
196
  theme = props.theme;
164
197
  var context = (0, _RouteContext.useRouteContext)();
165
198
  var getPrefixCls = context.getPrefixCls;
@@ -182,9 +215,11 @@ var SiderMenu = function SiderMenu(props) {
182
215
  props.onSelect($event);
183
216
  }
184
217
  };
185
- var headerDom = defaultRenderLogoAndTitle(props);
218
+ var headerDom = defaultRenderLogoAndTitle((0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
219
+ baseClassName: baseClassName
220
+ }));
186
221
  var extraDom = menuExtraRender && menuExtraRender(props);
187
- if (hasSplitMenu.value && (0, _vue.unref)(context.flatMenuData).length === 0) {
222
+ if (props.layoutType !== _defaultSettings.LayoutType.CARD && hasSplitMenu.value && (0, _vue.unref)(context.flatMenuData).length === 0) {
188
223
  return null;
189
224
  }
190
225
  var defaultMenuDom = (0, _vue.createVNode)(_BaseMenu.default, {
@@ -254,9 +289,9 @@ var SiderMenu = function SiderMenu(props) {
254
289
  }
255
290
  }), (0, _vue.createVNode)("div", {
256
291
  "style": "flex: 1; overflow: hidden auto;"
257
- }, [menuContentRender && menuContentRender(props, defaultMenuDom) || defaultMenuDom]), (0, _vue.createVNode)("div", {
292
+ }, [props.layoutType === _defaultSettings.LayoutType.LIST ? menuContentRender && menuContentRender(props, defaultMenuDom) || defaultMenuDom : null]), (0, _vue.createVNode)("div", {
258
293
  "class": "".concat(baseClassName, "-links")
259
- }, [collapsedButtonRender !== false ? (0, _vue.createVNode)(_antDesignVue.Menu, {
294
+ }, [linksRender ? linksRender() : collapsedButtonRender !== false ? (0, _vue.createVNode)(_antDesignVue.Menu, {
260
295
  "class": "".concat(baseClassName, "-link-menu"),
261
296
  "inlineIndent": 16,
262
297
  "theme": theme,