ele-admin-plus 1.1.4-beta.1 → 1.1.4-beta.3

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.
Files changed (38) hide show
  1. package/es/ele-alert/style/index.scss +4 -1
  2. package/es/ele-app/style/css-var.scss +52 -0
  3. package/es/ele-app/style/overwrite.scss +65 -0
  4. package/es/ele-app/style/scrollbar.scss +1 -29
  5. package/es/ele-count-up/index.d.ts +2 -2
  6. package/es/ele-count-up/index.js +2 -1
  7. package/es/ele-count-up/props.d.ts +1 -1
  8. package/es/ele-modal/types/index.d.ts +9 -0
  9. package/es/ele-modal/util.js +45 -32
  10. package/es/ele-printer/index.d.ts +1 -0
  11. package/es/ele-printer/index.js +11 -4
  12. package/es/ele-printer/style/index.scss +13 -10
  13. package/es/ele-pro-layout/index.js +5 -5
  14. package/es/ele-pro-layout/style/layout-mobile.scss +1 -0
  15. package/es/ele-tabs/index.js +1 -0
  16. package/es/ele-xg-player/index.js +1 -0
  17. package/es/style/themes/default.scss +28 -0
  18. package/es/style/themes/rounded.scss +4 -0
  19. package/lib/ele-alert/style/index.scss +4 -1
  20. package/lib/ele-app/style/css-var.scss +52 -0
  21. package/lib/ele-app/style/overwrite.scss +65 -0
  22. package/lib/ele-app/style/scrollbar.scss +1 -29
  23. package/lib/ele-count-up/index.d.ts +2 -2
  24. package/lib/ele-count-up/index.js +2 -1
  25. package/lib/ele-count-up/props.d.ts +1 -1
  26. package/lib/ele-modal/types/index.d.ts +9 -0
  27. package/lib/ele-modal/util.js +45 -32
  28. package/lib/ele-printer/index.d.ts +1 -0
  29. package/lib/ele-printer/index.js +10 -3
  30. package/lib/ele-printer/style/index.scss +13 -10
  31. package/lib/ele-pro-layout/index.js +5 -5
  32. package/lib/ele-pro-layout/style/layout-mobile.scss +1 -0
  33. package/lib/ele-tabs/index.js +1 -0
  34. package/lib/ele-xg-player/index.js +1 -0
  35. package/lib/style/themes/default.scss +28 -0
  36. package/lib/style/themes/rounded.scss +4 -0
  37. package/package.json +5 -4
  38. package/typings/global.d.ts +52 -52
@@ -125,7 +125,7 @@
125
125
  // 主题
126
126
  &.is-dark {
127
127
  background: elVar('color-primary');
128
- border: none;
128
+ border-color: elVar('color-primary');
129
129
 
130
130
  & > .ele-alert-icon {
131
131
  color: eleVar('alert-dark', 'title-color');
@@ -151,14 +151,17 @@
151
151
 
152
152
  &.is-success {
153
153
  background: elVar('color-success');
154
+ border-color: elVar('color-success');
154
155
  }
155
156
 
156
157
  &.is-warning {
157
158
  background: elVar('color-warning');
159
+ border-color: elVar('color-warning');
158
160
  }
159
161
 
160
162
  &.is-error {
161
163
  background: elVar('color-error');
164
+ border-color: elVar('color-error');
162
165
  }
163
166
  }
164
167
  }
@@ -53,6 +53,11 @@
53
53
  @include set-ele-var('message-box', $var);
54
54
  }
55
55
 
56
+ // Notification
57
+ .el-notification {
58
+ @include set-ele-var('notification', $var);
59
+ }
60
+
56
61
  // Radio
57
62
  .el-radio {
58
63
  @include set-ele-var('radio', $var);
@@ -85,3 +90,50 @@
85
90
  @include set-ele-var('timepicker', $var);
86
91
  }
87
92
  }
93
+
94
+ // 美化滚动条样式
95
+ @mixin scrollbar-style() {
96
+ ::-webkit-scrollbar {
97
+ width: eleVar('scrollbar', 'size');
98
+ height: eleVar('scrollbar', 'size');
99
+ }
100
+
101
+ ::-webkit-scrollbar-thumb {
102
+ border: eleVar('scrollbar', 'padding') solid transparent;
103
+ border-radius: eleVar('scrollbar', 'radius');
104
+ background-color: eleVar('scrollbar', 'color');
105
+ background-clip: padding-box;
106
+
107
+ &:hover {
108
+ background-color: eleVar('scrollbar', 'hover-color');
109
+ }
110
+ }
111
+
112
+ ::-webkit-scrollbar-track {
113
+ background: eleVar('scrollbar', 'bg');
114
+ }
115
+
116
+ ::-webkit-scrollbar-corner {
117
+ background: transparent;
118
+ }
119
+
120
+ // 火狐浏览器
121
+ * {
122
+ scrollbar-width: thin;
123
+ scrollbar-color: eleVar('scrollbar', 'color') eleVar('scrollbar', 'bg');
124
+ }
125
+ }
126
+
127
+ @mixin set-scrollbar-style($selector) {
128
+ @if $selector == '' {
129
+ @include scrollbar-style();
130
+ } @else if $selector == 'pc' {
131
+ @media (hover: hover) and (pointer: fine) {
132
+ @include scrollbar-style();
133
+ }
134
+ } @else if $selector != 'never' {
135
+ #{$selector} {
136
+ @include scrollbar-style();
137
+ }
138
+ }
139
+ }
@@ -385,6 +385,71 @@
385
385
 
386
386
  body .el-overlay.is-message-box > .el-overlay-message-box {
387
387
  overflow-x: hidden;
388
+ scrollbar-width: none;
389
+
390
+ &::-webkit-scrollbar {
391
+ display: none;
392
+ }
393
+ }
394
+
395
+ /* Notification */
396
+ body .el-notification {
397
+ width: eleVar('notification', 'width');
398
+ max-width: calc(100vw - 48px);
399
+ padding: eleVar('notification', 'padding');
400
+ border: eleVar('notification', 'border');
401
+ border-radius: eleVar('notification', 'radius');
402
+ box-shadow: eleVar('notification', 'shadow');
403
+
404
+ .el-notification__icon {
405
+ width: eleVar('notification', 'icon-size');
406
+ height: eleVar('notification', 'icon-size');
407
+ font-size: eleVar('notification', 'icon-size');
408
+ margin: eleVar('notification', 'icon-margin');
409
+ }
410
+ }
411
+
412
+ .el-notification .el-notification__icon.el-notification--info {
413
+ color: elVar('color-primary');
414
+ }
415
+
416
+ .el-notification .el-notification__group {
417
+ margin: 0;
418
+
419
+ .el-notification__closeBtn {
420
+ top: 0;
421
+ right: 0;
422
+ width: eleVar('notification', 'close-size');
423
+ height: eleVar('notification', 'close-size');
424
+ line-height: eleVar('notification', 'close-size');
425
+ color: eleVar('notification', 'close-color');
426
+ font-size: eleVar('notification', 'close-font-size');
427
+ margin: eleVar('notification', 'close-margin');
428
+ border-radius: eleVar('notification', 'close-radius');
429
+ transition: (color $ele-transition, background-color $ele-transition);
430
+
431
+ &:hover {
432
+ color: eleVar('notification', 'close-hover-color');
433
+ background: eleVar('notification', 'close-hover-bg');
434
+ }
435
+ }
436
+
437
+ .el-notification__title {
438
+ color: eleVar('notification', 'title-color');
439
+ font-size: eleVar('notification', 'title-size');
440
+ font-weight: eleVar('notification', 'title-font-weight');
441
+ line-height: eleVar('notification', 'title-line-height');
442
+ padding: eleVar('notification', 'title-padding');
443
+ box-sizing: border-box;
444
+ }
445
+
446
+ .el-notification__content {
447
+ color: eleVar('notification', 'color');
448
+ font-size: eleVar('notification', 'size');
449
+ margin-top: eleVar('notification', 'body-margin');
450
+ line-height: inherit;
451
+ text-align: left;
452
+ }
388
453
  }
389
454
 
390
455
  /* Radio */
@@ -6,32 +6,4 @@
6
6
  @include set-scrollbar-var($ele);
7
7
  }
8
8
 
9
- ::-webkit-scrollbar {
10
- width: eleVar('scrollbar', 'size');
11
- height: eleVar('scrollbar', 'size');
12
- }
13
-
14
- ::-webkit-scrollbar-thumb {
15
- border: eleVar('scrollbar', 'padding') solid transparent;
16
- border-radius: eleVar('scrollbar', 'radius');
17
- background-color: eleVar('scrollbar', 'color');
18
- background-clip: padding-box;
19
-
20
- &:hover {
21
- background-color: eleVar('scrollbar', 'hover-color');
22
- }
23
- }
24
-
25
- ::-webkit-scrollbar-track {
26
- background: eleVar('scrollbar', 'bg');
27
- }
28
-
29
- ::-webkit-scrollbar-corner {
30
- background: transparent;
31
- }
32
-
33
- // 火狐浏览器
34
- * {
35
- scrollbar-width: thin;
36
- scrollbar-color: eleVar('scrollbar', 'color') eleVar('scrollbar', 'bg');
37
- }
9
+ @include set-scrollbar-style($scrollbar-selector);
@@ -17,7 +17,7 @@ declare const _default: import("vue").DefineComponent<{
17
17
  reset: () => void;
18
18
  update: (newEndVal?: string | number) => void;
19
19
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
20
- ready: (_instance?: CountUp | undefined) => boolean;
20
+ ready: (_instance?: CountUp | null | undefined) => boolean;
21
21
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
22
22
  delay: {
23
23
  type: NumberConstructor;
@@ -29,7 +29,7 @@ declare const _default: import("vue").DefineComponent<{
29
29
  };
30
30
  options: import("vue").PropType<import("countup.js").CountUpOptions>;
31
31
  }>> & {
32
- onReady?: ((_instance?: CountUp | undefined) => any) | undefined;
32
+ onReady?: ((_instance?: CountUp | null | undefined) => any) | undefined;
33
33
  }, {
34
34
  delay: number;
35
35
  }, {}>;
@@ -47,7 +47,8 @@ const _sfc_main = defineComponent({
47
47
  }
48
48
  };
49
49
  const destroy = () => {
50
- instance = void 0;
50
+ reset();
51
+ instance = null;
51
52
  };
52
53
  watch(
53
54
  () => props.endVal,
@@ -19,5 +19,5 @@ export type CountUpProps = ExtractPropTypes<typeof countUpProps>;
19
19
  * 事件
20
20
  */
21
21
  export declare const countUpEmits: {
22
- ready: (_instance?: CountUp) => boolean;
22
+ ready: (_instance?: CountUp | null) => boolean;
23
23
  };
@@ -25,3 +25,12 @@ export type PositionValue = 'top' | 'bottom' | 'left' | 'right' | 'leftTop' | 'l
25
25
  * 初始位置类型
26
26
  */
27
27
  export type Position = PositionValue | PositionObject;
28
+ /**
29
+ * 弹窗坐标
30
+ */
31
+ export interface Location {
32
+ top?: number;
33
+ left?: number;
34
+ topValue?: string;
35
+ leftValue?: string;
36
+ }
@@ -20,6 +20,8 @@ const singleSidebarClass = "ele-state-single-sidebar";
20
20
  const topLayoutClass = "ele-state-top-layout";
21
21
  const expandedClass = "ele-state-expanded";
22
22
  const mobileClass = "ele-state-mobile";
23
+ const fixTop = 0.65;
24
+ const fixLeft = 0.65;
23
25
  function initModalStyle(modalEl, resizable) {
24
26
  modalEl.style.top = modalEl.offsetTop + "px";
25
27
  modalEl.style.left = modalEl.offsetLeft + "px";
@@ -102,8 +104,8 @@ function handleMovable(event, props) {
102
104
  left: e.clientX - downX + downOL,
103
105
  top: e.clientY - downY + downOT
104
106
  };
105
- const limitL = wrapEl.clientWidth - modalEl.clientWidth - 0.65;
106
- const limitT = wrapEl.clientHeight - modalEl.clientHeight - 0.45;
107
+ const limitL = wrapEl.clientWidth - modalEl.clientWidth - fixLeft;
108
+ const limitT = wrapEl.clientHeight - modalEl.clientHeight - fixTop;
107
109
  if (!props.moveOut) {
108
110
  if (position.left < 0) {
109
111
  position.left = 0;
@@ -138,8 +140,8 @@ function handleMovable(event, props) {
138
140
  position.top = minLimitT;
139
141
  }
140
142
  }
141
- modalEl.style.left = `${position.left}px`;
142
- modalEl.style.top = `${position.top}px`;
143
+ modalEl.style.left = `${Math.floor(position.left)}px`;
144
+ modalEl.style.top = `${Math.floor(position.top)}px`;
143
145
  };
144
146
  const mouseupFn = function() {
145
147
  modalEl.style.userSelect = "";
@@ -182,7 +184,7 @@ function handleResizable(event, props) {
182
184
  const mousemoveFn = function(e) {
183
185
  if (props.resizable !== "vertical") {
184
186
  const w = e.clientX - downX + downW;
185
- const maxW = wrapEl.clientWidth - modalEl.offsetLeft - 1;
187
+ const maxW = wrapEl.clientWidth - modalEl.offsetLeft - fixLeft;
186
188
  const nw = (w < props.minWidth ? props.minWidth : !canMoveOut(props.moveOut, "right") && w > maxW ? maxW : w) + "px";
187
189
  modalEl.style.width = nw;
188
190
  modalEl.style.maxWidth = nw;
@@ -190,7 +192,7 @@ function handleResizable(event, props) {
190
192
  }
191
193
  if (props.resizable !== "horizontal") {
192
194
  const h = e.clientY - downY + downH;
193
- const maxH = wrapEl.clientHeight - modalEl.offsetTop - 1;
195
+ const maxH = wrapEl.clientHeight - modalEl.offsetTop - fixTop;
194
196
  const nh = (h < props.minHeight ? props.minHeight : !canMoveOut(props.moveOut, "bottom") && h > maxH ? maxH : h) + "px";
195
197
  modalEl.style.height = nh;
196
198
  modalEl.style.maxHeight = nh;
@@ -248,60 +250,71 @@ function setModalPosition(modalEl, resizable, position, moveOut) {
248
250
  if (!wrapEl) {
249
251
  return;
250
252
  }
253
+ const location = {};
251
254
  initModalStyle(modalEl, resizable);
252
255
  const canOutB = canMoveOut(moveOut, "bottom");
253
256
  const canOutR = canMoveOut(moveOut, "right");
254
- const t = wrapEl.clientHeight - modalEl.clientHeight - (canOutB ? 0 : 2);
257
+ const t = wrapEl.clientHeight - modalEl.clientHeight - (canOutB ? 0 : fixTop);
255
258
  const maxTop = t < 0 ? 0 : t;
256
- const l = wrapEl.clientWidth - modalEl.clientWidth - (canOutR ? 0 : 1);
259
+ const l = wrapEl.clientWidth - modalEl.clientWidth - (canOutR ? 0 : fixLeft);
257
260
  const maxLeft = l < 0 ? 0 : l;
258
261
  if (position === "top") {
259
- modalEl.style.top = "0px";
260
- modalEl.style.left = `${maxLeft / 2}px`;
262
+ location.top = 0;
263
+ location.left = maxLeft / 2;
261
264
  } else if (position === "bottom") {
262
- modalEl.style.top = `${maxTop}px`;
263
- modalEl.style.left = `${maxLeft / 2}px`;
265
+ location.top = maxTop;
266
+ location.left = maxLeft / 2;
264
267
  } else if (position === "left") {
265
- modalEl.style.top = `${maxTop / 2}px`;
266
- modalEl.style.left = "0px";
268
+ location.top = maxTop / 2;
269
+ location.left = 0;
267
270
  } else if (position === "right") {
268
- modalEl.style.top = `${maxTop / 2}px`;
269
- modalEl.style.left = `${maxLeft}px`;
271
+ location.top = maxTop / 2;
272
+ location.left = maxLeft;
270
273
  } else if (position === "leftTop") {
271
- modalEl.style.top = "0px";
272
- modalEl.style.left = "0px";
274
+ location.top = 0;
275
+ location.left = 0;
273
276
  } else if (position === "leftBottom") {
274
- modalEl.style.top = `${maxTop}px`;
275
- modalEl.style.left = "0px";
277
+ location.top = maxTop;
278
+ location.left = 0;
276
279
  } else if (position === "rightTop") {
277
- modalEl.style.top = "0px";
278
- modalEl.style.left = `${maxLeft}px`;
280
+ location.top = 0;
281
+ location.left = maxLeft;
279
282
  } else if (position === "rightBottom") {
280
- modalEl.style.top = `${maxTop}px`;
281
- modalEl.style.left = `${maxLeft}px`;
283
+ location.top = maxTop;
284
+ location.left = maxLeft;
282
285
  } else if (position === "center") {
283
- modalEl.style.top = `${maxTop / 2}px`;
284
- modalEl.style.left = `${maxLeft / 2}px`;
286
+ location.top = maxTop / 2;
287
+ location.left = maxLeft / 2;
285
288
  } else if (typeof position === "object") {
286
289
  if (position.top != null) {
287
290
  if (typeof position.top === "number") {
288
- modalEl.style.top = `${position.top}px`;
291
+ location.top = position.top;
289
292
  } else {
290
- modalEl.style.top = position.top;
293
+ location.topValue = position.top;
291
294
  }
292
295
  } else if (position.left != null) {
293
- modalEl.style.top = `${maxTop / 2}px`;
296
+ location.top = maxTop / 2;
294
297
  }
295
298
  if (position.left != null) {
296
299
  if (typeof position.left === "number") {
297
- modalEl.style.left = `${position.left}px`;
300
+ location.left = position.left;
298
301
  } else {
299
- modalEl.style.left = position.left;
302
+ location.leftValue = position.left;
300
303
  }
301
304
  } else if (position.top != null) {
302
- modalEl.style.left = `${maxLeft / 2}px`;
305
+ location.left = maxLeft / 2;
303
306
  }
304
307
  }
308
+ if (location.top != null) {
309
+ modalEl.style.top = `${Math.floor(location.top)}px`;
310
+ } else if (location.topValue != null) {
311
+ modalEl.style.top = location.topValue;
312
+ }
313
+ if (location.left != null) {
314
+ modalEl.style.left = `${Math.floor(location.left)}px`;
315
+ } else if (location.leftValue != null) {
316
+ modalEl.style.left = location.leftValue;
317
+ }
305
318
  }
306
319
  function setInitPosition(modalEl, resizable, position, moveOut, force) {
307
320
  const attr = "ele-position";
@@ -12,6 +12,7 @@ declare const _default: import("vue").DefineComponent<{
12
12
  }, {
13
13
  container: import("vue").ShallowRef<Element>;
14
14
  visible: import("vue").Ref<boolean>;
15
+ isStatic: import("vue").ComputedRef<boolean>;
15
16
  print: () => void;
16
17
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
18
  'update:modelValue': (_value: boolean) => boolean;
@@ -1,4 +1,4 @@
1
- import { defineComponent, shallowRef, ref, watch, nextTick, openBlock, createBlock, Teleport, createElementVNode, normalizeClass, createElementBlock, normalizeStyle, renderSlot, createCommentVNode } from "vue";
1
+ import { defineComponent, shallowRef, ref, computed, watch, nextTick, openBlock, createBlock, Teleport, createElementVNode, normalizeClass, createElementBlock, normalizeStyle, renderSlot, createCommentVNode } from "vue";
2
2
  import { useLicense } from "../ele-config-provider/receiver";
3
3
  import { usePrinter, getPrintContainer, doPrintOnFrame, doPrint } from "./util";
4
4
  import { printerProps, printerEmits } from "./props";
@@ -14,6 +14,9 @@ const _sfc_main = defineComponent({
14
14
  });
15
15
  const container = shallowRef(getPrintContainer());
16
16
  const visible = ref(false);
17
+ const isStatic = computed(() => {
18
+ return props.static;
19
+ });
17
20
  const print = () => {
18
21
  if (!authenticated.value) {
19
22
  updateModelValue(false);
@@ -54,7 +57,7 @@ const _sfc_main = defineComponent({
54
57
  },
55
58
  { immediate: true }
56
59
  );
57
- return { container, visible, print };
60
+ return { container, visible, isStatic, print };
58
61
  }
59
62
  });
60
63
  const _export_sfc = (sfc, props) => {
@@ -69,10 +72,14 @@ const _hoisted_2 = { key: 1 };
69
72
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
70
73
  return openBlock(), createBlock(Teleport, {
71
74
  to: _ctx.container,
72
- disabled: _ctx.static && !_ctx.visible
75
+ disabled: _ctx.isStatic && !_ctx.visible
73
76
  }, [
74
77
  createElementVNode("table", {
75
- class: normalizeClass(["ele-printer", { "is-open": _ctx.visible }, { "is-static": _ctx.static }])
78
+ class: normalizeClass([
79
+ "ele-printer",
80
+ { "is-open": _ctx.visible },
81
+ { "is-static": _ctx.isStatic }
82
+ ])
76
83
  }, [
77
84
  _ctx.$slots.header ? (openBlock(), createElementBlock("thead", _hoisted_1, [
78
85
  createElementVNode("tr", null, [
@@ -40,19 +40,22 @@
40
40
  }
41
41
 
42
42
  /* 打印状态 */
43
+ html.ele-printing,
43
44
  html.ele-printing > body {
44
- color: #000;
45
- background: #fff;
45
+ color: #000 !important;
46
+ background: #fff !important;
47
+ height: auto !important;
48
+ overflow: visible !important;
49
+ }
46
50
 
47
- & > * {
48
- display: none !important;
49
- }
51
+ html.ele-printing > body > * {
52
+ display: none !important;
53
+ }
50
54
 
51
- #ele-printer-container {
52
- display: block !important;
55
+ html.ele-printing #ele-printer-container {
56
+ display: block !important;
53
57
 
54
- * {
55
- pointer-events: none !important;
56
- }
58
+ * {
59
+ pointer-events: none !important;
57
60
  }
58
61
  }
@@ -107,7 +107,7 @@ const _sfc_main = defineComponent({
107
107
  if (props.fixedBody) {
108
108
  return ".ele-admin-layout.ele-admin-fixed-body>.ele-admin-main>.ele-admin-body>.ele-admin-content";
109
109
  }
110
- return void 0;
110
+ return "body";
111
111
  });
112
112
  const sidebarCollapse = computed(() => {
113
113
  return mobile.value || mixSidebar.value ? false : props.collapse;
@@ -636,11 +636,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
636
636
  })
637
637
  ]), 1032, ["menus", "headerStyle", "active", "ellipsis", "ellipsisProps", "menuTrigger", "itemTrigger", "collapse", "sidebar", "titleSlot", "iconSlot", "levels", "breadcrumb", "breadcrumbSeparator", "homePath", "isHome", "onLogoClick", "onOpen", "onClsoe", "onItemClick"]),
638
638
  createVNode(_component_EleWatermark, {
639
- fixed: true,
639
+ class: "ele-admin-main",
640
640
  height: 68,
641
- content: _ctx.watermark,
642
641
  disabled: _ctx.authenticated,
643
- class: "ele-admin-main"
642
+ fixed: true,
643
+ content: _ctx.watermark
644
644
  }, {
645
645
  default: withCtx(() => [
646
646
  _ctx.sidebox ? (openBlock(), createBlock(_component_ProSidebox, {
@@ -733,7 +733,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
733
733
  ])
734
734
  ]),
735
735
  _: 3
736
- }, 8, ["content", "disabled"]),
736
+ }, 8, ["disabled", "content"]),
737
737
  createElementVNode("div", {
738
738
  class: "ele-admin-mask",
739
739
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.updateCollapse && _ctx.updateCollapse(...args))
@@ -13,6 +13,7 @@
13
13
 
14
14
  .ele-admin-sidebar {
15
15
  top: eleVar('header', 'height') !important;
16
+ height: calc(100vh - #{eleVar('header', 'height')}) !important;
16
17
  }
17
18
 
18
19
  .ele-admin-logo > img + h1 {
@@ -105,6 +105,7 @@ const _sfc_main = defineComponent({
105
105
  };
106
106
  const unbindDragSort = () => {
107
107
  current.sortIns && current.sortIns.destroy();
108
+ current.sortIns = null;
108
109
  };
109
110
  const onContextmenu = (e) => {
110
111
  const el = e.target;
@@ -27,6 +27,7 @@ const _sfc_main = defineComponent({
27
27
  const destroy = () => {
28
28
  if (player && typeof player.destroy === "function") {
29
29
  player.destroy();
30
+ player = null;
30
31
  }
31
32
  };
32
33
  onMounted(() => {
@@ -5,6 +5,9 @@
5
5
  // 过渡动画
6
6
  $ele-transition: 0.2s !default;
7
7
 
8
+ // 美化滚动条样式选择器
9
+ $scrollbar-selector: '' !default;
10
+
8
11
  // 样式变量
9
12
  $ele: () !default;
10
13
  $ele: map.deep-merge(
@@ -838,6 +841,31 @@ $ele: map.deep-merge(
838
841
  'footer-border': none,
839
842
  'mobile-space': 16px
840
843
  ),
844
+ 'notification': (
845
+ // 通知
846
+ 'width': 360px,
847
+ 'border': none,
848
+ 'padding': 20px,
849
+ 'radius': elVar('border-radius', 'base'),
850
+ 'shadow': elVar('box-shadow', 'light'),
851
+ 'color': elVar('text-color', 'regular'),
852
+ 'size': elVar('font-size', 'base'),
853
+ 'icon-size': 26px,
854
+ 'icon-margin': -2px 12px 0 0,
855
+ 'title-color': elVar('text-color', 'primary'),
856
+ 'title-size': elVar('font-size', 'medium'),
857
+ 'title-font-weight': normal,
858
+ 'title-line-height': 22px,
859
+ 'title-padding': 0 22px 0 0,
860
+ 'body-margin': 8px,
861
+ 'close-size': 22px,
862
+ 'close-margin': 20px 24px 0 0,
863
+ 'close-radius': elVar('border-radius', 'small'),
864
+ 'close-font-size': 18px,
865
+ 'close-color': elVar('text-color', 'secondary'),
866
+ 'close-hover-color': elVar('text-color', 'primary'),
867
+ 'close-hover-bg': transparent
868
+ ),
841
869
  'radio': (
842
870
  // 单选框
843
871
  'color': elVar('text-color', 'regular'),
@@ -216,6 +216,10 @@ $ele-rounded: map.deep-merge(
216
216
  'header-font-weight': bold,
217
217
  'icon-hover-bg': elVar('fill-color', 'light')
218
218
  ),
219
+ 'notification': (
220
+ 'radius': $radius-large,
221
+ 'close-hover-bg': elVar('fill-color', 'light')
222
+ ),
219
223
  'descriptions': (
220
224
  'radius': $radius-large
221
225
  ),
@@ -125,7 +125,7 @@
125
125
  // 主题
126
126
  &.is-dark {
127
127
  background: elVar('color-primary');
128
- border: none;
128
+ border-color: elVar('color-primary');
129
129
 
130
130
  & > .ele-alert-icon {
131
131
  color: eleVar('alert-dark', 'title-color');
@@ -151,14 +151,17 @@
151
151
 
152
152
  &.is-success {
153
153
  background: elVar('color-success');
154
+ border-color: elVar('color-success');
154
155
  }
155
156
 
156
157
  &.is-warning {
157
158
  background: elVar('color-warning');
159
+ border-color: elVar('color-warning');
158
160
  }
159
161
 
160
162
  &.is-error {
161
163
  background: elVar('color-error');
164
+ border-color: elVar('color-error');
162
165
  }
163
166
  }
164
167
  }