@epxing/business 5.3.0-beta.2 → 5.3.0-beta.4

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 (98) hide show
  1. package/API.md +115 -111
  2. package/README.md +44 -44
  3. package/dist/src/base/AiSkillEditor.js +1 -1
  4. package/dist/src/base/AiSkillEditor.vue.js +2 -0
  5. package/dist/src/base/AppConfigFormItem.js +1 -3
  6. package/dist/src/base/AppConfigFormItem.vue.js +210 -85
  7. package/dist/src/base/CommonFieldList.js +1 -1
  8. package/dist/src/base/CommonFieldList.vue.js +2 -1
  9. package/dist/src/base/ConfigModuleIndex.js +38 -1
  10. package/dist/src/base/ManageAppNav.js +1 -1
  11. package/dist/src/base/ManageMenu.js +1 -1
  12. package/dist/src/base/RoleBindTrace.js +253 -0
  13. package/dist/src/base/RoleGroupManage.js +1037 -0
  14. package/dist/src/base/ServiceMenu.js +7 -6
  15. package/dist/src/components/AiList.js +1278 -3
  16. package/dist/src/components/EntityCheckboxFind.vue.js +14 -10
  17. package/dist/src/components/EntityRightFormItem.js +1 -5
  18. package/dist/src/components/EntityRightFormItem.vue.js +3 -1
  19. package/dist/src/components/EntitySystemEr.js +492 -0
  20. package/dist/src/components/HallNav.vue.js +7 -36
  21. package/dist/src/components/IconFontLibrary.js +22 -1
  22. package/dist/src/components/IconFontList.js +21 -1
  23. package/dist/src/components/PrintFormList.js +2 -1
  24. package/dist/src/components/PrintFormList.vue.js +3 -1
  25. package/dist/src/components/WikiWorkbench.js +153 -129
  26. package/dist/src/components/authorization/AuthorizationInterface.js +3 -1
  27. package/dist/src/components/custom-bpmn/PropertiesView.js +1991 -1942
  28. package/dist/src/components/icon-gallery/IconGallery.js +193 -0
  29. package/dist/src/components/icon-gallery/mixin.js +150 -0
  30. package/dist/src/components/wiki-workbench/WikiIntake.js +86 -93
  31. package/dist/src/components/wiki-workbench/WikiIntake.vue.js +153 -73
  32. package/dist/src/index.js +26 -20
  33. package/dist/src/public-components.js +16 -14
  34. package/dist/src/route-components.js +5 -5
  35. package/dist/src/system.component.index.js +1 -1
  36. package/dist/src/system.component.js +8 -3
  37. package/dist/src/system.component.lazy.js +1 -1
  38. package/dist/src/views/Add.js +1 -1
  39. package/dist/src/views/Add.vue.js +8 -3
  40. package/dist/src/views/AiToolManager.js +792 -317
  41. package/dist/src/views/App.js +3 -45
  42. package/dist/src/views/AppRoleSelect.js +3 -230
  43. package/dist/src/views/Error.js +3 -207
  44. package/dist/src/views/ExcelDesign.js +326 -316
  45. package/dist/src/views/JvmMemoryMonitor.js +463 -0
  46. package/dist/src/views/Module.js +3 -170
  47. package/dist/src/views/WikiBinding.js +88 -25
  48. package/dist/style.css +2867 -1487
  49. package/package.json +12 -6
  50. package/src/base/AiSkillEditor.vue +2 -0
  51. package/src/base/AppConfigFormItem.vue +211 -145
  52. package/src/base/CommonFieldList.vue +9 -6
  53. package/src/base/ConfigModuleIndex.vue +37 -1
  54. package/src/base/ManageAppNav.vue +1188 -1188
  55. package/src/base/ManageMenu.vue +933 -933
  56. package/src/base/RoleBindTrace.vue +364 -0
  57. package/src/base/RoleGroupManage.vue +1160 -0
  58. package/src/base/ServiceMenu.vue +6 -5
  59. package/src/components/AiList.vue +439 -113
  60. package/src/components/EntityCheckboxFind.vue +12 -8
  61. package/src/components/EntityRightFormItem.vue +9 -10
  62. package/src/components/EntitySystemEr.vue +517 -0
  63. package/src/components/HallNav.vue +6 -33
  64. package/src/components/IconFontLibrary.vue +27 -60
  65. package/src/components/IconFontList.vue +13 -64
  66. package/src/components/PrintFormList.vue +33 -27
  67. package/src/components/WikiWorkbench.vue +90 -60
  68. package/src/components/authorization/AuthorizationInterface.vue +2 -0
  69. package/src/components/custom-bpmn/CustomPalette.js +1 -1
  70. package/src/components/custom-bpmn/CustomRenderer.js +1 -1
  71. package/src/components/custom-bpmn/PropertiesView.vue +35 -4
  72. package/src/components/custom-bpmn/index.js +1 -1
  73. package/src/components/icon-gallery/IconGallery.vue +130 -0
  74. package/src/components/icon-gallery/mixin.jsx +109 -0
  75. package/src/components/wiki-workbench/WikiIntake.vue +178 -104
  76. package/src/index.js +24 -20
  77. package/src/public-components.js +1 -0
  78. package/src/route-components.js +4 -4
  79. package/src/system.component.index.js +1 -1
  80. package/src/views/Add.vue +8 -5
  81. package/src/views/AiToolManager.vue +326 -4
  82. package/src/views/App.vue +4 -53
  83. package/src/views/AppRoleSelect.vue +4 -334
  84. package/src/views/Error.vue +4 -63
  85. package/src/views/ExcelDesign.vue +24 -7
  86. package/src/views/JvmMemoryMonitor.vue +284 -0
  87. package/src/views/Module.vue +4 -210
  88. package/src/views/WikiBinding.vue +42 -0
  89. package/types/app.d.ts +1 -0
  90. package/types/dept-find.d.ts +1 -1
  91. package/types/index.d.ts +15 -14
  92. package/types/popup.d.ts +2 -2
  93. package/types/route-components.d.ts +1 -1
  94. package/types/user-find.d.ts +1 -1
  95. package/dist/assets/role_select-DTqRlFNz.webp +0 -0
  96. package/dist/src/components/AiList.vue.js +0 -93
  97. package/dist/src/components/IconFontLibrary.vue.js +0 -67
  98. package/dist/src/components/IconFontList.vue.js +0 -79
@@ -2,23 +2,61 @@ import __cjsReq7 from "../assets/images/nav/0.png.js";
2
2
  import __cjsReq6 from "../assets/images/nav/1.png.js";
3
3
  import __cjsReq8 from "../assets/images/nav/2.png.js";
4
4
  import __cjsReq9 from "../assets/images/nav/3.svg.js";
5
- import { createVNode, resolveComponent, isVNode } from "vue";
5
+ import { createVNode, resolveComponent, createTextVNode, isVNode } from "vue";
6
6
  import AddFormItem from "@epxing/components/src/add-form-item";
7
+ import TableForm from "@epxing/components/src/form";
8
+ import AppSettings from "@epxing/components/src/app-settings/AppSettings.vue";
9
+ import AppAppearancePreview from "@epxing/components/src/app-settings/AppAppearancePreview.vue";
10
+ import { createAppUiDraft } from "@epxing/core/src/app-ui-settings";
11
+ import { captureRef } from "@epxing/core/src/capture-ref";
7
12
  function _isSlot(s) {
8
13
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
9
14
  }
10
15
  const _sfc_main = {
11
16
  name: "epx-base-app-config-form-item",
12
17
  extends: AddFormItem,
18
+ components: {
19
+ AppSettings,
20
+ AppAppearancePreview,
21
+ TableForm
22
+ },
13
23
  data() {
14
24
  return {
15
25
  config: {},
16
- fieldsConfigs: []
26
+ fieldsConfigs: [],
27
+ layoutFieldsConfigs: [],
28
+ activeGroup: "theme",
29
+ uiDraft: {},
30
+ initialConfig: "{}",
31
+ syncingDraft: true,
32
+ settingsGroups: [{
33
+ key: "theme",
34
+ label: "主题与配色"
35
+ }, {
36
+ key: "layout",
37
+ label: "导航与布局"
38
+ }, {
39
+ key: "style",
40
+ label: "界面风格"
41
+ }, {
42
+ key: "tabs",
43
+ label: "页签设置"
44
+ }, {
45
+ key: "page",
46
+ label: "页面与效果"
47
+ }]
17
48
  };
18
49
  },
19
50
  computed: {
51
+ readOnly() {
52
+ return ["DETAIL", "READONLY"].includes(this.componentType);
53
+ },
20
54
  showFieldsConfigs() {
21
- return this.fieldsConfigs.filter((item) => {
55
+ return this.layoutFieldsConfigs.filter((item) => {
56
+ const themeKeys = ["navBackgroundColorType", "navBackgroundColor"];
57
+ const pageKeys = ["pageBackgroundType", "pageBackgroundColor", "pageBackgroundGradient", "pageBackgroundImage", "pageBackgroundSize"];
58
+ const group = themeKeys.includes(item.key) ? "theme" : pageKeys.includes(item.key) ? "page" : "layout";
59
+ if (group !== this.activeGroup) return false;
22
60
  let flag = true;
23
61
  if (item.showFlag) {
24
62
  for (const key in item.showFlag) {
@@ -35,6 +73,7 @@ const _sfc_main = {
35
73
  watch: {
36
74
  config: {
37
75
  handler(v) {
76
+ if (this.syncingDraft || this.readOnly) return;
38
77
  const APP_CONFIG = JSON.stringify(v);
39
78
  this.$emit("change", {
40
79
  ...this.data,
@@ -42,6 +81,15 @@ const _sfc_main = {
42
81
  });
43
82
  },
44
83
  deep: true
84
+ },
85
+ uiDraft: {
86
+ deep: true,
87
+ handler(value) {
88
+ if (!this.syncingDraft && !this.readOnly) this.config.uiDefaults = JSON.parse(JSON.stringify(value));
89
+ }
90
+ },
91
+ "formData.APP_CONFIG"(value) {
92
+ if (value !== JSON.stringify(this.config)) this.loadConfig(value);
45
93
  }
46
94
  },
47
95
  methods: {
@@ -122,6 +170,9 @@ const _sfc_main = {
122
170
  key: "navBackgroundColor",
123
171
  label: "自定义导航背景色",
124
172
  type: "color",
173
+ showFlag: {
174
+ navBackgroundColorType: "custom"
175
+ },
125
176
  predefineColors: []
126
177
  }, {
127
178
  key: "navOperates",
@@ -218,42 +269,6 @@ const _sfc_main = {
218
269
  type: "number",
219
270
  defaultValue: 992
220
271
  }];
221
- if (this.appConfig["SYSTEM|TYPE"] === "hall") {
222
- fieldsConfigs.splice(9, 0, {
223
- key: "componentMargin",
224
- label: "页面组件间距",
225
- type: "radio",
226
- options: [{
227
- label: "小",
228
- value: "small"
229
- }, {
230
- label: "中",
231
- value: "medium"
232
- }, {
233
- label: "默认",
234
- value: "base"
235
- }],
236
- defaultValue: "base"
237
- }, {
238
- key: "borderRadius",
239
- label: "圆角",
240
- type: "radio",
241
- options: [{
242
- label: "无",
243
- value: "zero"
244
- }, {
245
- label: "默认",
246
- value: "base"
247
- }, {
248
- label: "中",
249
- value: "medium"
250
- }, {
251
- label: "大",
252
- value: "large"
253
- }],
254
- defaultValue: "base"
255
- });
256
- }
257
272
  for (const item of fieldsConfigs) {
258
273
  item.state = pageType;
259
274
  if (item.options) item.options = item.options.map((item2) => ({
@@ -263,12 +278,23 @@ const _sfc_main = {
263
278
  preview: item2.preview
264
279
  }));
265
280
  }
266
- this.fieldsConfigs = fieldsConfigs;
281
+ this.layoutFieldsConfigs = fieldsConfigs;
282
+ this.fieldsConfigs = [{
283
+ attriName: "APP_CONFIG",
284
+ state: "HIDDEN"
285
+ }];
267
286
  },
268
287
  changeConfigItem(key, value) {
288
+ if (this.readOnly) return;
269
289
  this.config[key] = value;
270
290
  },
271
291
  save() {
292
+ var _a;
293
+ if (this.readOnly) return;
294
+ if (((_a = this.form) == null ? void 0 : _a.submitForm) && !this.isEdit) {
295
+ this.$nextTick(() => this.form.submitForm());
296
+ return;
297
+ }
272
298
  const params = {};
273
299
  const {
274
300
  submitParams: querySumitParams = {}
@@ -276,7 +302,12 @@ const _sfc_main = {
276
302
  if (this.formData[this.$metaKey]) {
277
303
  params[`bean.${this.$metaKey}`] = this.formData[this.$metaKey];
278
304
  }
279
- params["bean.APP_CONFIG"] = this.formData.APP_CONFIG;
305
+ Object.entries({
306
+ ...this.formData,
307
+ APP_CONFIG: JSON.stringify(this.config)
308
+ }).forEach(([key, value]) => {
309
+ params[`bean.${key}`] = value;
310
+ });
280
311
  const {
281
312
  componentEvents = {}
282
313
  } = this.$configs;
@@ -298,47 +329,150 @@ const _sfc_main = {
298
329
  });
299
330
  },
300
331
  switchNav(value, item) {
301
- if (item.state !== "DETAIL") {
332
+ if (!["DETAIL", "READONLY"].includes(item.state)) {
302
333
  this.config[item.key] = value;
303
334
  }
304
335
  },
336
+ loadConfig(value = "{}") {
337
+ this.syncingDraft = true;
338
+ const config = JSON.parse(value || "{}");
339
+ this.initialConfig = JSON.stringify(config);
340
+ for (const item of this.layoutFieldsConfigs) {
341
+ if (config[item.key] === void 0 && item.defaultValue !== void 0) config[item.key] = item.defaultValue;
342
+ }
343
+ this.config = config;
344
+ this.uiDraft = createAppUiDraft(config);
345
+ this.$nextTick(() => {
346
+ this.syncingDraft = false;
347
+ });
348
+ },
349
+ restorePlatform() {
350
+ if (this.readOnly) return;
351
+ this.uiDraft = createAppUiDraft();
352
+ const businessKeys = ["appPageType", "pageId", "navComponent", "navOperates", "mobileSize"];
353
+ for (const field of this.layoutFieldsConfigs) {
354
+ if (businessKeys.includes(field.key)) continue;
355
+ if (field.defaultValue !== void 0) this.config[field.key] = field.defaultValue;
356
+ else delete this.config[field.key];
357
+ }
358
+ },
359
+ discardDraft() {
360
+ const initial = this.initialConfig;
361
+ this.loadConfig(initial);
362
+ this.$emit("change", {
363
+ ...this.data,
364
+ APP_CONFIG: initial
365
+ });
366
+ },
305
367
  renderForm() {
306
- let _slot;
307
- return createVNode(resolveComponent("el-form"), {
308
- "class": "app-config-form",
309
- "inline": true,
310
- "label-position": "right",
311
- "label-width": "140px"
312
- }, _isSlot(_slot = this.showFieldsConfigs.map((item) => createVNode(resolveComponent("el-form-item"), {
313
- "label": `${item.label}`,
314
- "style": item.block ? {
315
- width: "100%"
316
- } : null
368
+ var _a;
369
+ return createVNode("section", {
370
+ "class": "epx-app-interface-settings"
371
+ }, [createVNode("div", {
372
+ "hidden": true
373
+ }, [createVNode(TableForm, {
374
+ "ref": captureRef(this, "form"),
375
+ "fieldsConfigs": this.fieldsConfigs,
376
+ "modelValue": {
377
+ ...this.data,
378
+ APP_CONFIG: JSON.stringify(this.config)
379
+ },
380
+ "type": "auto",
381
+ "showRelyFlag": false,
382
+ "valueRelyFlag": false,
383
+ "requiredRelyFlag": false
384
+ }, null)]), createVNode("div", {
385
+ "class": "epx-app-interface-settings__heading"
386
+ }, [createVNode("p", null, [createTextVNode("设置当前应用的默认外观;用户的个人选择优先。右侧预览不会改变当前界面。")])]), createVNode("div", {
387
+ "class": "epx-app-interface-settings__workspace"
388
+ }, [createVNode("nav", {
389
+ "class": "epx-app-interface-settings__nav",
390
+ "aria-label": "界面设置分组"
391
+ }, [this.settingsGroups.map((group) => createVNode("button", {
392
+ "type": "button",
393
+ "key": group.key,
394
+ "class": {
395
+ "is-active": this.activeGroup === group.key
396
+ },
397
+ "aria-current": this.activeGroup === group.key ? "page" : void 0,
398
+ "onClick": () => {
399
+ this.activeGroup = group.key;
400
+ }
401
+ }, [group.label]))]), createVNode("div", {
402
+ "class": "epx-app-interface-settings__editor"
403
+ }, [createVNode("h4", null, [(_a = this.settingsGroups.find((group) => group.key === this.activeGroup)) == null ? void 0 : _a.label]), createVNode(AppSettings, {
404
+ "embedded": true,
405
+ "settings": this.uiDraft,
406
+ "sections": [this.activeGroup],
407
+ "disabled": this.readOnly
408
+ }, null), this.renderLayoutFields()]), createVNode(AppAppearancePreview, {
409
+ "config": this.config,
410
+ "settings": this.uiDraft,
411
+ "title": this.data.NAME || "应用名称"
412
+ }, null)]), !this.readOnly && createVNode("div", {
413
+ "class": "epx-app-interface-settings__actions"
414
+ }, [createVNode(resolveComponent("el-button"), {
415
+ "onClick": this.restorePlatform
317
416
  }, {
318
- default: () => [item.key === "navType" ? createVNode("div", {
319
- "class": ["nav-type", {
320
- "is-disabled": item.state === "DETAIL"
417
+ default: () => [createTextVNode("恢复平台默认")]
418
+ }), createVNode(resolveComponent("el-button"), {
419
+ "onClick": this.discardDraft
420
+ }, {
421
+ default: () => [createTextVNode("撤销本次修改")]
422
+ }), createVNode(resolveComponent("el-button"), {
423
+ "type": "primary",
424
+ "onClick": this.save
425
+ }, {
426
+ default: () => [createTextVNode("保存")]
427
+ })])]);
428
+ },
429
+ renderLayoutFields() {
430
+ let _slot2;
431
+ return createVNode(resolveComponent("el-form"), {
432
+ "disabled": this.readOnly,
433
+ "class": "epx-base-app-config-form-item__form"
434
+ }, _isSlot(_slot2 = this.showFieldsConfigs.map((item) => {
435
+ let _slot;
436
+ return createVNode("div", {
437
+ "key": item.key,
438
+ "class": ["epx-app-interface-settings__field", {
439
+ "epx-app-interface-settings__field--block": item.block || item.type === "radio"
321
440
  }]
322
- }, [item.options.map((option) => createVNode("div", {
441
+ }, [createVNode("span", {
442
+ "class": "epx-app-interface-settings__label"
443
+ }, [item.label]), createVNode("div", {
444
+ "class": "epx-app-interface-settings__control"
445
+ }, [item.key === "navType" ? createVNode("div", {
446
+ "class": "nav-type",
447
+ "role": "group",
448
+ "aria-label": item.label
449
+ }, [item.options.map((option) => createVNode("button", {
450
+ "type": "button",
323
451
  "class": ["nav-type__item", {
324
452
  "is-active": this.config[item.key] === option.id
325
453
  }],
326
454
  "key": option.id,
455
+ "disabled": this.readOnly,
456
+ "aria-pressed": this.config[item.key] === option.id,
327
457
  "onClick": this.switchNav.bind(this, option.id, item)
328
- }, [createVNode("div", null, [createVNode("img", {
329
- "src": option.preview
330
- }, null)]), createVNode("p", null, [option.name])]))]) : item.type === "radio" ? createVNode(resolveComponent("epx-radio"), {
331
- "modelValue": this.config[item.key],
332
- "onUpdate:modelValue": ($event) => this.config[item.key] = $event,
333
- "fieldConfigs": {
334
- state: item.state,
335
- attriName: item.key,
336
- attriLabel: item.label,
337
- options: item.options
338
- }
339
- }, null) : item.type === "object" ? createVNode(resolveComponent("epx-visual-config-object"), {
458
+ }, [createVNode("img", {
459
+ "src": option.preview,
460
+ "alt": ""
461
+ }, null), createVNode("span", null, [option.name])]))]) : item.type === "radio" ? createVNode(resolveComponent("el-radio-group"), {
340
462
  "modelValue": this.config[item.key],
341
463
  "onUpdate:modelValue": ($event) => this.config[item.key] = $event,
464
+ "size": "small",
465
+ "aria-label": item.label
466
+ }, _isSlot(_slot = item.options.map((option) => createVNode(resolveComponent("el-radio-button"), {
467
+ "key": option.id,
468
+ "value": option.id
469
+ }, {
470
+ default: () => [option.name]
471
+ }))) ? _slot : {
472
+ default: () => [_slot]
473
+ }) : item.type === "object" ? createVNode(resolveComponent("epx-visual-config-object"), {
474
+ "value": this.config[item.key],
475
+ "onChangeConfigs": this.changeConfigItem.bind(this, item.key),
342
476
  "label": item.label,
343
477
  "object": item.object,
344
478
  "flag": item.flag,
@@ -348,11 +482,11 @@ const _sfc_main = {
348
482
  "modelValue": this.config[item.key],
349
483
  "onUpdate:modelValue": ($event) => this.config[item.key] = $event,
350
484
  "predefine": item.predefineColors,
351
- "disabled": item.state === "DETAIL"
485
+ "disabled": this.readOnly
352
486
  }, null) : item.type === "gradient" ? createVNode(resolveComponent("epx-color-picker"), {
353
487
  "modelValue": this.config[item.key],
354
488
  "onUpdate:modelValue": ($event) => this.config[item.key] = $event,
355
- "disabled": item.state === "DETAIL"
489
+ "disabled": this.readOnly
356
490
  }, null) : item.type === "photo" ? createVNode(resolveComponent("epx-photo"), {
357
491
  "modelValue": this.config[item.key],
358
492
  "onUpdate:modelValue": ($event) => this.config[item.key] = $event,
@@ -361,7 +495,7 @@ const _sfc_main = {
361
495
  attriName: item.key,
362
496
  attriLabel: item.label
363
497
  }
364
- }, null) : item.type === "num" ? createVNode(resolveComponent("epx-number"), {
498
+ }, null) : ["num", "number"].includes(item.type) ? createVNode(resolveComponent("epx-number"), {
365
499
  "modelValue": this.config[item.key],
366
500
  "onUpdate:modelValue": ($event) => this.config[item.key] = $event,
367
501
  "fieldConfigs": {
@@ -383,23 +517,14 @@ const _sfc_main = {
383
517
  attriName: item.key,
384
518
  attriLabel: item.label
385
519
  }
386
- }, null)]
387
- }))) ? _slot : {
388
- default: () => [_slot]
520
+ }, null)])]);
521
+ })) ? _slot2 : {
522
+ default: () => [_slot2]
389
523
  });
390
524
  }
391
525
  },
392
526
  created() {
393
- const {
394
- APP_CONFIG = "{}"
395
- } = this.data;
396
- const appConfig = JSON.parse(APP_CONFIG);
397
- for (const item of this.fieldsConfigs) {
398
- if (!appConfig[item.key] && item.defaultValue) {
399
- appConfig[item.key] = item.defaultValue;
400
- }
401
- }
402
- this.config = appConfig;
527
+ this.loadConfig(this.data.APP_CONFIG);
403
528
  }
404
529
  };
405
530
  export {
@@ -5,7 +5,7 @@ import _sfc_main from "./CommonFieldList.vue.js";
5
5
  /* empty css */
6
6
  /* empty css */
7
7
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
8
- const CommonFieldList = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f01084a3"]]);
8
+ const CommonFieldList = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2c565e21"]]);
9
9
  export {
10
10
  CommonFieldList as default
11
11
  };
@@ -376,7 +376,7 @@ const _sfc_main = {
376
376
  }
377
377
  }, {
378
378
  "append-to-body": true,
379
- "class": "show-field-dialog",
379
+ "class": "show-field-dialog epx-common-field-dialog",
380
380
  "destroy-on-close": true,
381
381
  "width": "800px",
382
382
  "top": "10vh"
@@ -476,6 +476,7 @@ const _sfc_main = {
476
476
  },
477
477
  renderNameDialog() {
478
478
  return createVNode(resolveComponent("el-dialog"), mergeProps({
479
+ "class": "epx-common-field-dialog",
479
480
  "modelValue": this.addCommonFieldDialod
480
481
  }, {
481
482
  "onUpdate:modelValue": (v) => {
@@ -1,6 +1,7 @@
1
1
  import '../../style.css';
2
2
  import ModuleIndexVue from "@epxing/components/src/menu-index";
3
3
  import { openExternalMenu } from "@epxing/utils/src/menu-open";
4
+ import { findMenuByKey, getRouteMenuKey } from "@epxing/core/src/menu-route";
4
5
  import { resolveComponent, openBlock, createElementBlock, createBlock, KeepAlive, createCommentVNode, createElementVNode } from "vue";
5
6
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
6
7
  const _comp = {
@@ -11,7 +12,42 @@ const _comp = {
11
12
  data: {}
12
13
  };
13
14
  },
15
+ computed: {
16
+ configMenuKey() {
17
+ return this.$route.name === "system" ? getRouteMenuKey(this.$route) : "";
18
+ },
19
+ initRoute() {
20
+ const menu = findMenuByKey(this.menu, this.configMenuKey);
21
+ if (menu && menu.OPEN_TYPE !== "1") {
22
+ return { moduleId: menu.ID, component: "module-list-page", pageId: menu.MAIN_PAGE, menuTitle: menu.text };
23
+ }
24
+ return ModuleIndexVue.computed.initRoute.call(this);
25
+ }
26
+ },
27
+ watch: {
28
+ configMenuKey: "restoreMenuFromRoute",
29
+ menu: "restoreMenuFromRoute",
30
+ "data.ID": "restoreMenuFromRoute"
31
+ },
14
32
  methods: {
33
+ restoreMenuFromRoute() {
34
+ if (this.$route.name !== "system") return;
35
+ this.$nextTick(() => {
36
+ var _a;
37
+ const view = this.$refs.router;
38
+ if (!view || !this.data.ID) return;
39
+ const menu = findMenuByKey(this.menu, this.configMenuKey);
40
+ if (menu) {
41
+ if (((_a = view.route) == null ? void 0 : _a.moduleId) === menu.ID) return;
42
+ const activeTab = this.$tabs.find((tab) => tab.active);
43
+ if (menu.OPEN_TYPE === "1" && (activeTab == null ? void 0 : activeTab.moduleId) === menu.ID) return;
44
+ this.toPage(menu);
45
+ } else if (!this.configMenuKey) {
46
+ view.clearPage();
47
+ view.createPage(this.initRoute);
48
+ }
49
+ });
50
+ },
15
51
  getInfo() {
16
52
  const { name, params = {}, query = {} } = this.$route;
17
53
  const { system: querySystem = "" } = query;
@@ -113,11 +149,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
113
149
  showNav: false,
114
150
  class: "aside hidden-sm-and-down",
115
151
  modules: _ctx.menu,
152
+ activeMenuId: _ctx.configMenuKey,
116
153
  moduleName: `${_ctx.data.NAME || _ctx.$t("application")}${_ctx.$t("configuration")}`,
117
154
  subTitle: _ctx.data["CLIENT#"],
118
155
  toPages: _ctx.toPages,
119
156
  clickItem: _ctx.toPage
120
- }, null, 8, ["modules", "moduleName", "subTitle", "toPages", "clickItem"])) : createCommentVNode("", true)
157
+ }, null, 8, ["modules", "activeMenuId", "moduleName", "subTitle", "toPages", "clickItem"])) : createCommentVNode("", true)
121
158
  ], 1024)),
122
159
  createElementVNode("div", _hoisted_3, [
123
160
  _ctx.menu.length > 0 ? (openBlock(), createBlock(_component_epx_router_view, {
@@ -3,7 +3,7 @@ import _sfc_main from "./ManageAppNav.vue.js";
3
3
  /* empty css */
4
4
  /* empty css */
5
5
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
6
- const ManageAppNav = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2016b718"]]);
6
+ const ManageAppNav = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-da55cb5e"]]);
7
7
  export {
8
8
  ManageAppNav as default
9
9
  };
@@ -910,7 +910,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
910
910
  }, 8, ["title", "modelValue", "width"])
911
911
  ], 4);
912
912
  }
913
- const ManageMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-3c56dadf"]]);
913
+ const ManageMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-1d8c4e0d"]]);
914
914
  export {
915
915
  ManageMenu as default
916
916
  };