ele-admin-plus 1.2.0 → 1.2.1-beta.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.
Files changed (51) hide show
  1. package/es/ele-admin-layout/index.d.ts +11 -1
  2. package/es/ele-admin-layout/index.js +53 -47
  3. package/es/ele-admin-layout/props.d.ts +10 -0
  4. package/es/ele-admin-layout/props.js +10 -0
  5. package/es/ele-app/components/message-body.d.ts +6 -0
  6. package/es/ele-app/components/message-body.js +10 -4
  7. package/es/ele-app/components/message-box-icon.d.ts +30 -0
  8. package/es/ele-app/components/message-box-icon.js +63 -0
  9. package/es/ele-app/el.d.ts +7 -0
  10. package/es/ele-app/style/overwrite/message-box/index.scss +19 -0
  11. package/es/ele-card/index.js +1 -1
  12. package/es/ele-pro-layout/index.d.ts +12 -2
  13. package/es/ele-pro-layout/index.js +6 -1
  14. package/es/ele-pro-layout/props.d.ts +10 -0
  15. package/es/ele-pro-layout/props.js +10 -0
  16. package/es/ele-pro-table/types.d.ts +3 -3
  17. package/es/ele-qr-code/qrcodegen.js +34 -70
  18. package/es/icons/MenuOutlined.d.ts +2 -0
  19. package/es/icons/MenuOutlined.js +32 -0
  20. package/es/icons/index.d.ts +1 -0
  21. package/es/icons/index.js +84 -82
  22. package/es/utils/message-box.js +28 -2
  23. package/es/utils/message.js +36 -13
  24. package/lib/components.cjs +4 -5
  25. package/lib/core-export.cjs +28 -35
  26. package/lib/core.cjs +8 -10
  27. package/lib/ele-admin-layout/index.cjs +53 -47
  28. package/lib/ele-admin-layout/index.d.ts +11 -1
  29. package/lib/ele-admin-layout/props.cjs +10 -0
  30. package/lib/ele-admin-layout/props.d.ts +10 -0
  31. package/lib/ele-app/components/message-body.cjs +9 -3
  32. package/lib/ele-app/components/message-body.d.ts +6 -0
  33. package/lib/ele-app/components/message-box-icon.cjs +62 -0
  34. package/lib/ele-app/components/message-box-icon.d.ts +30 -0
  35. package/lib/ele-app/el.d.ts +7 -0
  36. package/lib/ele-app/style/overwrite/message-box/index.scss +19 -0
  37. package/lib/ele-card/index.cjs +1 -1
  38. package/lib/ele-pro-layout/index.cjs +6 -1
  39. package/lib/ele-pro-layout/index.d.ts +12 -2
  40. package/lib/ele-pro-layout/props.cjs +10 -0
  41. package/lib/ele-pro-layout/props.d.ts +10 -0
  42. package/lib/ele-pro-table/types.d.ts +3 -3
  43. package/lib/ele-qr-code/qrcodegen.cjs +34 -70
  44. package/lib/icons/MenuOutlined.cjs +31 -0
  45. package/lib/icons/MenuOutlined.d.ts +2 -0
  46. package/lib/icons/index.cjs +2 -0
  47. package/lib/icons/index.d.ts +1 -0
  48. package/lib/index.cjs +8 -10
  49. package/lib/utils/message-box.cjs +27 -1
  50. package/lib/utils/message.cjs +35 -12
  51. package/package.json +11 -11
@@ -42,7 +42,7 @@ function getOffsetStyle(offset, userStyle) {
42
42
  function isObjOpt(params) {
43
43
  return params != null && typeof params === "object" && !vue.isVNode(params);
44
44
  }
45
- function normalizeOption(params, globalOpt, onClose, type, loading, getWrapEl2, groupKey) {
45
+ function normalizeOption(params, globalOpt, onClose, type, loading, getWrapEl2, groupKey, messageId, onMessageDestroy) {
46
46
  const opt = { ...globalOpt || {} };
47
47
  if (isObjOpt(params)) {
48
48
  Object.assign(opt, params);
@@ -91,7 +91,9 @@ function normalizeOption(params, globalOpt, onClose, type, loading, getWrapEl2,
91
91
  showClose: opt.showClose,
92
92
  dangerouslyUseHTMLString: opt.dangerouslyUseHTMLString,
93
93
  loading,
94
- onClose
94
+ messageId,
95
+ onClose,
96
+ onMessageDestroy
95
97
  },
96
98
  { default: isFn ? content : isStr ? void 0 : () => content }
97
99
  );
@@ -163,7 +165,8 @@ function useMessage(globalOpt) {
163
165
  const globalProps = receiver.useGlobalProps("message");
164
166
  const appContext = (_b = (_a = vue.getCurrentInstance) == null ? void 0 : _a.call(vue)) == null ? void 0 : _b.appContext;
165
167
  const groupKey = (globalOpt == null ? void 0 : globalOpt.groupKey) || getDefaultGroupKey();
166
- const state = { wrapEl: null, isActivated: true };
168
+ const state = { wrapEl: null, isActivated: true, id: 0 };
169
+ const instances = /* @__PURE__ */ new Map();
167
170
  const hideClass = "is-hide";
168
171
  vue.provide(MESSAGE_KEY, { groupKey, getInnerWrap: () => getWrap(true) });
169
172
  const parentMsg = vue.inject(MESSAGE_KEY, null);
@@ -175,6 +178,12 @@ function useMessage(globalOpt) {
175
178
  state.isActivated = false;
176
179
  state.wrapEl && state.wrapEl.classList.add(hideClass);
177
180
  });
181
+ vue.onBeforeUnmount(() => {
182
+ for (const [_key, ins] of instances) {
183
+ ins && ins.close && ins.close();
184
+ }
185
+ instances.clear();
186
+ });
178
187
  const getWrap = (inner) => {
179
188
  if (inner) {
180
189
  if (parentMsg != null && parentMsg.groupKey === groupKey) {
@@ -192,49 +201,63 @@ function useMessage(globalOpt) {
192
201
  }
193
202
  return getWrapEl();
194
203
  };
195
- const getOption = function(params, onClose, type, loading) {
196
- return normalizeOption(
204
+ const getOpt = function(params, onClose, type, loading) {
205
+ state.id++;
206
+ const msgId = `m_${state.id}`;
207
+ const opt = normalizeOption(
197
208
  params,
198
209
  { ...globalProps.value || {}, ...globalOpt || {} },
199
210
  onClose,
200
211
  type,
201
212
  loading,
202
213
  getWrap,
203
- groupKey
214
+ groupKey,
215
+ msgId,
216
+ (messageId) => {
217
+ messageId && instances.delete(messageId);
218
+ }
204
219
  );
220
+ return { opt, msgId };
205
221
  };
206
222
  const message = function(params) {
207
- const opt = getOption(params, () => ins.close());
223
+ const { opt, msgId } = getOpt(params, () => ins.close());
208
224
  const ins = elementPlus.ElMessage(opt, appContext);
225
+ instances.set(msgId, ins);
209
226
  return ins;
210
227
  };
211
228
  message.success = function(params) {
212
- const opt = getOption(params, () => ins.close(), "success", false);
229
+ const { opt, msgId } = getOpt(params, () => ins.close(), "success", false);
213
230
  const ins = elementPlus.ElMessage(opt, appContext);
231
+ instances.set(msgId, ins);
214
232
  return ins;
215
233
  };
216
234
  message.warning = function(params) {
217
- const opt = getOption(params, () => ins.close(), "warning", false);
235
+ const { opt, msgId } = getOpt(params, () => ins.close(), "warning", false);
218
236
  const ins = elementPlus.ElMessage(opt, appContext);
237
+ instances.set(msgId, ins);
219
238
  return ins;
220
239
  };
221
240
  message.error = function(params) {
222
- const opt = getOption(params, () => ins.close(), "error", false);
241
+ const { opt, msgId } = getOpt(params, () => ins.close(), "error", false);
223
242
  const ins = elementPlus.ElMessage(opt, appContext);
243
+ instances.set(msgId, ins);
224
244
  return ins;
225
245
  };
226
246
  message.info = function(params) {
227
- const opt = getOption(params, () => ins.close());
247
+ const { opt, msgId } = getOpt(params, () => ins.close());
228
248
  const ins = elementPlus.ElMessage(opt, appContext);
249
+ instances.set(msgId, ins);
229
250
  return ins;
230
251
  };
231
252
  message.loading = function(params) {
232
253
  blurCurrentFocus();
233
- const opt = getOption(params, () => ins.close(), void 0, true);
254
+ const { opt, msgId } = getOpt(params, () => ins.close(), void 0, true);
234
255
  const ins = elementPlus.ElMessage(opt, appContext);
256
+ instances.set(msgId, ins);
235
257
  return ins;
236
258
  };
237
259
  message.closeAll = function(type) {
260
+ instances.clear();
238
261
  return elementPlus.ElMessage.closeAll(type);
239
262
  };
240
263
  return message;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ele-admin-plus",
3
- "version": "1.2.0",
3
+ "version": "1.2.1-beta.1",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite --host --config vite.global.ts",
@@ -27,12 +27,12 @@
27
27
  "@types/node": "^20.14.2",
28
28
  "@types/nprogress": "^0.2.3",
29
29
  "@types/sortablejs": "^1.15.8",
30
- "@typescript-eslint/eslint-plugin": "^7.12.0",
31
- "@typescript-eslint/parser": "^7.12.0",
30
+ "@typescript-eslint/eslint-plugin": "^7.13.0",
31
+ "@typescript-eslint/parser": "^7.13.0",
32
32
  "@vitejs/plugin-vue": "^5.0.5",
33
33
  "@vitejs/plugin-vue-jsx": "^4.0.0",
34
- "@vue/compiler-sfc": "^3.4.27",
35
- "@vueuse/core": "^10.10.0",
34
+ "@vue/compiler-sfc": "^3.4.29",
35
+ "@vueuse/core": "^10.11.0",
36
36
  "axios": "^1.7.2",
37
37
  "bytemd": "^1.21.0",
38
38
  "chalk": "^5.3.0",
@@ -49,7 +49,7 @@
49
49
  "esno": "^4.7.0",
50
50
  "exceljs": "^4.4.0",
51
51
  "execa": "^9.2.0",
52
- "github-markdown-css": "^5.5.1",
52
+ "github-markdown-css": "^5.6.0",
53
53
  "highlight.js": "^11.9.0",
54
54
  "jsbarcode": "^3.11.6",
55
55
  "lodash-es": "^4.17.21",
@@ -57,20 +57,20 @@
57
57
  "p-limit": "^5.0.0",
58
58
  "pinia": "^2.1.7",
59
59
  "postcss": "^8.4.38",
60
- "prettier": "^3.3.1",
60
+ "prettier": "^3.3.2",
61
61
  "rimraf": "^5.0.7",
62
- "sass": "^1.77.4",
62
+ "sass": "^1.77.5",
63
63
  "sortablejs": "^1.15.2",
64
64
  "tinymce": "^5.10.9",
65
65
  "typescript": "^5.4.5",
66
66
  "unplugin-vue-components": "^0.27.0",
67
- "vite": "^5.2.13",
67
+ "vite": "^5.3.1",
68
68
  "vite-plugin-dts": "^3.9.1",
69
- "vue": "^3.4.27",
69
+ "vue": "^3.4.29",
70
70
  "vue-echarts": "^6.7.3",
71
71
  "vue-eslint-parser": "^9.4.3",
72
72
  "vue-i18n": "^9.13.1",
73
- "vue-router": "^4.3.2",
73
+ "vue-router": "^4.3.3",
74
74
  "vue-tsc": "^2.0.21",
75
75
  "vuedraggable": "^4.1.0",
76
76
  "xgplayer": "^3.0.18",