@maketribe/ms-app 3.0.12 → 3.0.13

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 (108) hide show
  1. package/dist/cjs/components/data-model/data-filter-form/composables/use-condition.js +14 -14
  2. package/dist/cjs/components/data-model/data-filter-form/composables/use-condition.js.map +1 -1
  3. package/dist/cjs/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js +1 -1
  4. package/dist/cjs/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js.map +1 -1
  5. package/dist/cjs/components/data-model/data-filter-form/data-filter-form-options.d.ts +3 -3
  6. package/dist/cjs/components/data-model/data-filter-form/data-filter-form-options.js +2 -1
  7. package/dist/cjs/components/data-model/data-filter-form/data-filter-form-options.js.map +1 -1
  8. package/dist/cjs/components/data-model/data-filter-form/data-filter-form.d.ts +4 -4
  9. package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js +34 -5
  10. package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
  11. package/dist/cjs/components/data-model/data-filter-form/index.d.ts +4 -4
  12. package/dist/cjs/components/data-model/data-filter-form/token.d.ts +1 -0
  13. package/dist/cjs/components/data-model/data-filter-form/token.js.map +1 -1
  14. package/dist/cjs/components/data-model/data-filter-popover/data-filter-popover.js +4 -3
  15. package/dist/cjs/components/data-model/data-filter-popover/data-filter-popover.js.map +1 -1
  16. package/dist/cjs/components/data-model/data-form/data-form.js +1 -1
  17. package/dist/cjs/components/data-model/data-form/data-form.js.map +1 -1
  18. package/dist/cjs/components/data-model/data-table/data-table.js +0 -1
  19. package/dist/cjs/components/data-model/data-table/data-table.js.map +1 -1
  20. package/dist/cjs/components/data-model/data-table/views/table-view/table-view.js +35 -30
  21. package/dist/cjs/components/data-model/data-table/views/table-view/table-view.js.map +1 -1
  22. package/dist/cjs/components/system-provider/system-provider.d.ts +7 -0
  23. package/dist/cjs/components/system-provider/system-provider.js +29 -46
  24. package/dist/cjs/components/system-provider/system-provider.js.map +1 -1
  25. package/dist/cjs/core/Router.d.ts +1 -11
  26. package/dist/cjs/core/Router.js +0 -22
  27. package/dist/cjs/core/Router.js.map +1 -1
  28. package/dist/cjs/core/UserSession.js +0 -12
  29. package/dist/cjs/core/UserSession.js.map +1 -1
  30. package/dist/cjs/core/tabs/Tabs.js.map +1 -1
  31. package/dist/cjs/dataview/member/MemberTable.d.ts +1 -2
  32. package/dist/cjs/dataview/member/MemberTable.js +9 -16
  33. package/dist/cjs/dataview/member/MemberTable.js.map +1 -1
  34. package/dist/cjs/dataview/role/RoleTable.js.map +1 -1
  35. package/dist/cjs/layouts/components/bar/index.js +2 -2
  36. package/dist/cjs/layouts/components/bar/index.js.map +1 -1
  37. package/dist/cjs/layouts/components/menu/index.js +2 -2
  38. package/dist/cjs/layouts/components/menu/index.js.map +1 -1
  39. package/dist/cjs/page/index/dv/ms-member/index.vue2.js +54 -15
  40. package/dist/cjs/page/index/dv/ms-member/index.vue2.js.map +1 -1
  41. package/dist/cjs/router-middleware/auth.js +0 -19
  42. package/dist/cjs/router-middleware/auth.js.map +1 -1
  43. package/dist/esm/components/data-model/data-filter-form/composables/use-condition.js +14 -14
  44. package/dist/esm/components/data-model/data-filter-form/composables/use-condition.js.map +1 -1
  45. package/dist/esm/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js +1 -1
  46. package/dist/esm/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js.map +1 -1
  47. package/dist/esm/components/data-model/data-filter-form/data-filter-form-options.d.ts +3 -3
  48. package/dist/esm/components/data-model/data-filter-form/data-filter-form-options.js +3 -2
  49. package/dist/esm/components/data-model/data-filter-form/data-filter-form-options.js.map +1 -1
  50. package/dist/esm/components/data-model/data-filter-form/data-filter-form.d.ts +4 -4
  51. package/dist/esm/components/data-model/data-filter-form/data-filter-form.js +35 -6
  52. package/dist/esm/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
  53. package/dist/esm/components/data-model/data-filter-form/index.d.ts +4 -4
  54. package/dist/esm/components/data-model/data-filter-form/token.d.ts +1 -0
  55. package/dist/esm/components/data-model/data-filter-form/token.js.map +1 -1
  56. package/dist/esm/components/data-model/data-filter-popover/data-filter-popover.js +5 -4
  57. package/dist/esm/components/data-model/data-filter-popover/data-filter-popover.js.map +1 -1
  58. package/dist/esm/components/data-model/data-form/data-form.js +1 -1
  59. package/dist/esm/components/data-model/data-form/data-form.js.map +1 -1
  60. package/dist/esm/components/data-model/data-table/data-table.js +0 -1
  61. package/dist/esm/components/data-model/data-table/data-table.js.map +1 -1
  62. package/dist/esm/components/data-model/data-table/views/table-view/table-view.js +35 -30
  63. package/dist/esm/components/data-model/data-table/views/table-view/table-view.js.map +1 -1
  64. package/dist/esm/components/system-provider/system-provider.d.ts +7 -0
  65. package/dist/esm/components/system-provider/system-provider.js +30 -47
  66. package/dist/esm/components/system-provider/system-provider.js.map +1 -1
  67. package/dist/esm/core/Router.d.ts +1 -11
  68. package/dist/esm/core/Router.js +1 -23
  69. package/dist/esm/core/Router.js.map +1 -1
  70. package/dist/esm/core/UserSession.js +0 -12
  71. package/dist/esm/core/UserSession.js.map +1 -1
  72. package/dist/esm/core/tabs/Tabs.js.map +1 -1
  73. package/dist/esm/dataview/member/MemberTable.d.ts +1 -2
  74. package/dist/esm/dataview/member/MemberTable.js +10 -17
  75. package/dist/esm/dataview/member/MemberTable.js.map +1 -1
  76. package/dist/esm/dataview/role/RoleTable.js.map +1 -1
  77. package/dist/esm/layouts/components/bar/index.js +2 -2
  78. package/dist/esm/layouts/components/bar/index.js.map +1 -1
  79. package/dist/esm/layouts/components/menu/index.js +2 -2
  80. package/dist/esm/layouts/components/menu/index.js.map +1 -1
  81. package/dist/esm/page/index/dv/ms-member/index.vue2.js +55 -16
  82. package/dist/esm/page/index/dv/ms-member/index.vue2.js.map +1 -1
  83. package/dist/esm/router-middleware/auth.js +0 -19
  84. package/dist/esm/router-middleware/auth.js.map +1 -1
  85. package/dist/style/components/data-filter.css +1 -1
  86. package/dist/style/components/index.css +1 -1
  87. package/dist/style/index.css +1 -1
  88. package/dist/style/src/components/data-filter.scss +0 -1
  89. package/package.json +4 -4
  90. package/src/components/data-model/data-filter-form/composables/use-condition.ts +19 -16
  91. package/src/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.tsx +7 -4
  92. package/src/components/data-model/data-filter-form/data-filter-form-options.ts +3 -2
  93. package/src/components/data-model/data-filter-form/data-filter-form.tsx +51 -6
  94. package/src/components/data-model/data-filter-form/token.ts +1 -0
  95. package/src/components/data-model/data-filter-popover/data-filter-popover.tsx +4 -3
  96. package/src/components/data-model/data-form/data-form.tsx +3 -1
  97. package/src/components/data-model/data-table/data-table.tsx +5 -1
  98. package/src/components/data-model/data-table/views/table-view/table-view.tsx +43 -35
  99. package/src/components/system-provider/system-provider.tsx +52 -49
  100. package/src/core/Router.ts +0 -34
  101. package/src/core/UserSession.ts +0 -18
  102. package/src/core/tabs/Tabs.ts +7 -1
  103. package/src/dataview/member/MemberTable.tsx +12 -14
  104. package/src/dataview/role/RoleTable.ts +1 -0
  105. package/src/layouts/components/bar/index.tsx +3 -2
  106. package/src/layouts/components/menu/index.tsx +3 -2
  107. package/src/page/index/dv/ms-member/index.vue +3 -16
  108. package/src/router-middleware/auth.ts +0 -35
@@ -13,7 +13,6 @@
13
13
  padding: 0 10px;
14
14
  color: var(--el-input-text-color, var(--el-text-color-regular));
15
15
  font-size: 14px;
16
- box-sizing: border-box;
17
16
  text-align: right;
18
17
  &::after{
19
18
  content: " :";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maketribe/ms-app",
3
- "version": "3.0.12",
3
+ "version": "3.0.13",
4
4
  "description": "",
5
5
  "main": "dist/cjs",
6
6
  "files": [
@@ -20,10 +20,10 @@
20
20
  "vue": "^3.3.4",
21
21
  "vue-codemirror": "^6.1.1",
22
22
  "vue-router": "^4.2.4",
23
- "@maketribe/dm": "^3.0.8",
24
- "@maketribe/locale": "^1.0.5",
23
+ "@maketribe/utils": "^1.1.3",
25
24
  "@maketribe/request": "^1.1.10",
26
- "@maketribe/utils": "^1.1.3"
25
+ "@maketribe/dm": "^3.0.8",
26
+ "@maketribe/locale": "^1.0.5"
27
27
  },
28
28
  "scripts": {
29
29
  "build": "npm run clean && npm run build:js && npm run build:type && npm run build:style",
@@ -39,22 +39,25 @@ export function useDataFilterCondition(options: DataFilterConditionOptions) {
39
39
 
40
40
  const currentOperator = computed(() => dataFilterItem.currentOperator);
41
41
 
42
- watch(
43
- currentOperator,
44
- () => {
45
- const defaultValue = options.defaultValue;
46
-
47
- if (unref(isBetween)) {
48
- dataFilterItem.column.defaultValue = [defaultValue, defaultValue];
49
- value.value = [defaultValue, defaultValue];
50
- return;
51
- }
52
-
53
- dataFilterItem.column.defaultValue = defaultValue;
54
- value.value = defaultValue;
55
- },
56
- { immediate: true }
57
- );
42
+ const calcDefaultValue = () => {
43
+ const defaultValue = options.defaultValue;
44
+
45
+ if (unref(isBetween)) {
46
+ return [defaultValue, defaultValue];
47
+ }
48
+
49
+ return defaultValue;
50
+ };
51
+
52
+ watch(currentOperator, () => {
53
+ const defaultValue = calcDefaultValue();
54
+
55
+ dataFilterItem.column.defaultValue = defaultValue;
56
+ value.value = defaultValue;
57
+ });
58
+
59
+ dataFilterItem.column.defaultValue = calcDefaultValue();
60
+ value.value = dataFilterItem.getValue() || calcDefaultValue();
58
61
 
59
62
  return {
60
63
  isBetween,
@@ -164,13 +164,16 @@ export default defineComponent({
164
164
  </ElSelect>
165
165
  ) : null;
166
166
 
167
- const labelWidth = computed(()=>100);
167
+ const labelWidth = computed(() => dataFilterContext.labelWidth);
168
168
 
169
169
  return (
170
170
  <div class="mk-data-filter-form-item">
171
- <div class="mk-data-filter-form-item__label" style={
172
- {width:labelWidth.value+"px"}
173
- }>{_filterColumn.label}</div>
171
+ <div
172
+ class="mk-data-filter-form-item__label"
173
+ style={{ width: labelWidth.value + "px" }}
174
+ >
175
+ {_filterColumn.label}
176
+ </div>
174
177
  {/* {operatorSelect} */}
175
178
  <div class="mk-data-filter-form-item__content">{children}</div>
176
179
  </div>
@@ -1,10 +1,11 @@
1
1
  import { ExtractPropTypes } from "vue";
2
- import { DataFilter } from "@maketribe/dm";
2
+ import { DataFilter, DataTable } from "@maketribe/dm";
3
3
  import { buildProps } from "@maketribe/utils";
4
4
  import dataFilterForm from "./data-filter-form";
5
5
 
6
6
  export const dataFilterFormProps = buildProps({
7
- dataFilter: { type: DataFilter, required: true },
7
+ // dataFilter: { type: DataFilter, required: true },
8
+ dataTable: { type: DataTable, required: true },
8
9
  } as const);
9
10
 
10
11
  export type DataFilterFormProps = ExtractPropTypes<typeof dataFilterFormProps>;
@@ -1,10 +1,14 @@
1
1
  import {
2
+ Fragment,
3
+ Suspense,
2
4
  computed,
3
5
  defineComponent,
4
- onMounted,
6
+ getCurrentInstance,
5
7
  provide,
6
8
  reactive,
7
9
  unref,
10
+ watch,
11
+ withCtx,
8
12
  } from "vue";
9
13
  import { dataFilterFormProps } from "./data-filter-form-options";
10
14
  import { MKDataFilterFormItem } from "./data-filter-form-item";
@@ -14,7 +18,8 @@ export default defineComponent({
14
18
  name: "MKDataFilterForm",
15
19
  props: dataFilterFormProps,
16
20
  setup(props, { slots }) {
17
- const dataFilter = computed(() => props.dataFilter);
21
+ const dataTable = computed(() => props.dataTable);
22
+ const dataFilter = computed(() => unref(dataTable).dataFilter);
18
23
 
19
24
  const columns = computed(() =>
20
25
  unref(dataFilter)
@@ -22,13 +27,47 @@ export default defineComponent({
22
27
  .filter((column) => column.visible)
23
28
  );
24
29
 
25
- provide(DATA_FILTER_CONTEXT, reactive({ dataFilter }));
30
+ const labelWidth = computed(() => {
31
+ const maxWordCount = Math.max(
32
+ ...unref(columns).map((column) => column.label.length)
33
+ );
26
34
 
27
- onMounted(() => {
28
- unref(dataFilter).setReady();
35
+ return maxWordCount * 14 + 10;
29
36
  });
30
37
 
38
+ provide(DATA_FILTER_CONTEXT, reactive({ dataFilter, labelWidth }));
39
+
40
+ const instance = getCurrentInstance();
41
+
42
+ const handleResolve = () => {
43
+ withCtx(() => {
44
+ watch(
45
+ dataFilter,
46
+ (dataFilter) => {
47
+ dataFilter.setReady();
48
+ },
49
+ { immediate: true }
50
+ );
51
+ }, instance)();
52
+ };
53
+
54
+ watch(
55
+ dataTable,
56
+ (dataTable) => {
57
+ dataTable.initdEvent.once(() => {
58
+ if (!dataTable.dataFilter.getColumns().length) {
59
+ dataTable.dataFilter.setReady();
60
+ }
61
+ });
62
+ },
63
+ { immediate: true }
64
+ );
65
+
31
66
  return () => {
67
+ if (!unref(columns).length) {
68
+ return null;
69
+ }
70
+
32
71
  let children: any = slots.default?.();
33
72
 
34
73
  if (!children) {
@@ -52,7 +91,13 @@ export default defineComponent({
52
91
  return null;
53
92
  }
54
93
 
55
- return <div class="mk-data-filter-form">{children}</div>;
94
+ return (
95
+ <div class="mk-data-filter-form">
96
+ <Suspense onResolve={handleResolve}>
97
+ <Fragment>{children}</Fragment>
98
+ </Suspense>
99
+ </div>
100
+ );
56
101
  };
57
102
  },
58
103
  });
@@ -4,6 +4,7 @@ import { OperatorOption } from "./operator-options";
4
4
 
5
5
  export interface DataFilterContext {
6
6
  dataFilter: DataFilter;
7
+ labelWidth: number;
7
8
  }
8
9
 
9
10
  export interface DataFilterItemContext {
@@ -8,10 +8,11 @@ export default defineComponent({
8
8
  name: "MKDataFilterPopover",
9
9
  props: dataFilterPopoverProps,
10
10
  setup(props, { slots }) {
11
- const dataFilter = computed(() => props.dataTable.dataFilter);
11
+ const dataTable = computed(() => props.dataTable);
12
+ const dataFilter = computed(() => unref(dataTable).dataFilter);
12
13
 
13
14
  const handleSearch = () => {
14
- props.dataTable.load();
15
+ unref(dataTable).load();
15
16
  };
16
17
 
17
18
  const handleReset = () => {
@@ -32,7 +33,7 @@ export default defineComponent({
32
33
  return (
33
34
  <div class="mk-data-filter-popover">
34
35
  <div class="mk-data-filter-popover__body">
35
- <MKDataFilterForm dataFilter={unref(dataFilter)} />
36
+ <MKDataFilterForm dataTable={unref(dataTable)} />
36
37
  </div>
37
38
  <div class="mk-data-filter-popover__footer">
38
39
  <ElButton onClick={handleReset}>重置</ElButton>
@@ -72,7 +72,9 @@ export default defineComponent({
72
72
  event: dataForm[key as keyof DataForm]! as Event,
73
73
  }));
74
74
 
75
- for (const item of events) {
75
+ for (const item of events.filter(
76
+ (event) => event.eventName in dataFormEmits
77
+ )) {
76
78
  disposable.register(
77
79
  // @ts-ignore
78
80
  item.event.on((event: any) => {
@@ -2,6 +2,7 @@ import { DataTable, TableColumn } from "@maketribe/dm";
2
2
  import {
3
3
  computed,
4
4
  defineComponent,
5
+ nextTick,
5
6
  provide,
6
7
  reactive,
7
8
  unref,
@@ -42,7 +43,10 @@ export default defineComponent({
42
43
  watch(
43
44
  dataTable,
44
45
  async (dataTable) => {
45
- dataTable.dataFilter.setReady();
46
+ // nextTick(() => {
47
+ // dataTable.dataFilter.setReady();
48
+ // });
49
+
46
50
  if (props.autoLoad) {
47
51
  dataTable.load();
48
52
  }
@@ -1,4 +1,4 @@
1
- import { Fragment, computed, defineComponent, unref } from "vue";
1
+ import { Fragment, VNode, computed, defineComponent, unref } from "vue";
2
2
  import { ElButton, ElCard } from "element-plus";
3
3
 
4
4
  import { MKButton } from "../../../../button";
@@ -45,44 +45,52 @@ export default defineComponent({
45
45
  classifySearch = <MKTableClassifySearch />;
46
46
  }
47
47
 
48
- const tools = !_dataTable.getSelection().length ? (
49
- <Fragment>
50
- <div class="header-box-main"></div>
51
- <div class="header-box-tools">
52
- <MKDataFilterPopover dataTable={_dataTable}>
53
- <ElButton>
54
- <MKSvgIcon iconClass="Filter" />
55
- </ElButton>
56
- </MKDataFilterPopover>
48
+ let tools: VNode;
57
49
 
58
- {buttons}
59
- </div>
60
- </Fragment>
61
- ) : (
62
- <div class="mk-table-view__selection-tip">
63
- <div class="mk-table-view__selection-tip-left">
64
- <span>
65
- 已选中
66
- <span class="selection-count">
67
- {_dataTable.getSelection().length}
50
+ if (!_dataTable.getSelection().length) {
51
+ tools = (
52
+ <Fragment>
53
+ <div class="header-box-main"></div>
54
+ <div class="header-box-tools">
55
+ <MKDataFilterPopover dataTable={_dataTable}>
56
+ <ElButton>
57
+ <MKSvgIcon iconClass="Filter" />
58
+ </ElButton>
59
+ </MKDataFilterPopover>
60
+ {buttons}
61
+ </div>
62
+ </Fragment>
63
+ );
64
+ } else {
65
+ tools = (
66
+ <div class="mk-table-view__selection-tip">
67
+ <div class="mk-table-view__selection-tip-left">
68
+ <span>
69
+ 已选中
70
+ <span class="selection-count">
71
+ {_dataTable.getSelection().length}
72
+ </span>
73
+
68
74
  </span>
69
-
70
- </span>
71
- </div>
72
- <div class="mk-table-view__selection-tip-right">
73
- {_dataTable.batchActionButtonTools.map((button) => (
74
- <MKButton
75
+ </div>
76
+ <div class="mk-table-view__selection-tip-right">
77
+ {_dataTable.batchActionButtonTools.map((button) => (
78
+ <MKButton
79
+ link
80
+ button={button}
81
+ onClick={() => button.handler()}
82
+ />
83
+ ))}
84
+ <ElButton
75
85
  link
76
- button={button}
77
- onClick={() => button.handler()}
78
- />
79
- ))}
80
- <ElButton link onClick={() => _dataTable.clearSelection()}>
81
- 取消选择
82
- </ElButton>
86
+ onClick={() => _dataTable.clearSelection()}
87
+ >
88
+ 取消选择
89
+ </ElButton>
90
+ </div>
83
91
  </div>
84
- </div>
85
- );
92
+ );
93
+ }
86
94
 
87
95
  return (
88
96
  <Fragment>
@@ -1,10 +1,24 @@
1
- import { computed, defineComponent, renderSlot, unref, useSlots } from "vue";
1
+ import {
2
+ computed,
3
+ defineComponent,
4
+ renderSlot,
5
+ unref,
6
+ useSlots,
7
+ watch,
8
+ } from "vue";
2
9
  import { useRouter } from "vue-router";
3
10
  import { Components } from "@maketribe/dm";
4
- import { UserSession, MSAppClient } from "../../core";
5
- import { RouteType } from "../../constants";
11
+ import { MSAppClient } from "../../core";
6
12
  import { MKConfigProvider } from "../config-provider";
7
13
 
14
+ /**
15
+ * 路由变动的几种情况,
16
+ * 1.点击菜单跳转陆游
17
+ * 2.特定业务逻辑需要跳转路由
18
+ * 3.返回上一页
19
+ * 4.刷新页面
20
+ */
21
+
8
22
  export default defineComponent({
9
23
  name: "MKSystemProvider",
10
24
  setup() {
@@ -16,62 +30,51 @@ export default defineComponent({
16
30
 
17
31
  const slots = useSlots();
18
32
 
19
- function initUserSession(userSession: UserSession) {
20
- const tabs = userSession.tabs;
21
-
22
- const router = userSession.router;
33
+ watch(
34
+ computed(() => unref(vueRouter.currentRoute)),
35
+ (route) => {
36
+ const userSession = msAppClient.userSession;
23
37
 
24
- router.beforeRouteChange.on(async ({ routeInfo }) => {
25
- const currentTab = tabs.getCurrentTab();
26
-
27
- if (
28
- currentTab?.route.type === RouteType.ROUTE &&
29
- (await currentTab.beforeSwitchEvent.emitAsync()) === false
30
- ) {
31
- return false;
38
+ if (!userSession) {
39
+ return;
32
40
  }
33
41
 
34
- switch (routeInfo.type) {
35
- case RouteType.LINK:
36
- let a = document.createElement("a");
37
- a.href = routeInfo.path;
42
+ const router = userSession.router;
43
+ const menu = userSession.menu;
44
+ const tabs = userSession.tabs;
38
45
 
39
- window.open(a.href, "_blank");
46
+ const routeInfo = router.getRouteByName(route.name as string);
40
47
 
41
- return false;
42
- case RouteType.ROUTE:
43
- if (routeInfo.name === currentTab?.route.name) {
44
- return false;
45
- }
46
-
47
- break;
48
+ if (!routeInfo) {
49
+ menu.setCurrentMenuNode(null);
50
+ tabs.setCurrentTab(null);
51
+ return;
48
52
  }
49
- });
50
53
 
51
- tabs.currentTabChangeEvent.on(({ currentTab }) => {
52
- if (!currentTab) {
54
+ const menuNode = menu.findMenuNodeByID(routeInfo.menuId);
55
+
56
+ if (!menuNode) {
57
+ menu.setCurrentMenuNode(null);
58
+ tabs.setCurrentTab(null);
53
59
  return;
54
60
  }
55
61
 
56
- try {
57
- vueRouter.push(
58
- currentTab.realRoute ?? { name: currentTab.route.name }
59
- );
60
- } catch (e) {
61
- console.error(e);
62
- }
63
- });
64
- }
65
-
66
- if (msAppClient.userSession) {
67
- initUserSession(msAppClient.userSession);
68
- }
69
-
70
- msAppClient.userSessionChangeEvent.on(({ userSession }) => {
71
- if (userSession) {
72
- initUserSession(userSession);
73
- }
74
- });
62
+ menu.setCurrentMenuNode(menuNode);
63
+
64
+ const tab =
65
+ tabs.findTabByID(route.fullPath) ??
66
+ tabs.createTab({
67
+ id: route.fullPath,
68
+ title: routeInfo.title,
69
+ affix: !!route.matched?.[route.matched?.length - 1]?.meta?.affix,
70
+ realRoute: route,
71
+ route: routeInfo,
72
+ });
73
+
74
+ tabs.switchTab(tab);
75
+ },
76
+ { immediate: true }
77
+ );
75
78
 
76
79
  return () => {
77
80
  return (
@@ -9,16 +9,6 @@ export class Router extends Disposable {
9
9
 
10
10
  routes: Route[] = [];
11
11
 
12
- currentRoute: any | null = null;
13
-
14
- beforeRouteChange: Event<{ routeInfo: Route; route: any }> = this.register(
15
- new Event()
16
- );
17
-
18
- routeChange: Event<{ routeInfo: Route; route: any }> = this.register(
19
- new Event()
20
- );
21
-
22
12
  constructor(userSession: UserSession) {
23
13
  super();
24
14
 
@@ -157,28 +147,4 @@ export class Router extends Disposable {
157
147
  getRoutesByMenuID(menuId: Route["menuId"]): Route[] {
158
148
  return this.routes.filter((route) => route.menuId === menuId);
159
149
  }
160
-
161
- async changeRoute(route: any) {
162
- if (!route) {
163
- return true;
164
- }
165
-
166
- const routeInfo = this.getRouteByName(route.name);
167
-
168
- if (!routeInfo) {
169
- return true;
170
- }
171
-
172
- if (
173
- (await this.beforeRouteChange.emitAsync({ route, routeInfo })) !== false
174
- ) {
175
- this.currentRoute = route;
176
-
177
- this.routeChange.emit({ route, routeInfo });
178
-
179
- return true;
180
- }
181
-
182
- return false;
183
- }
184
150
  }
@@ -166,24 +166,6 @@ export class UserSession extends Disposable {
166
166
  this.beforeInitRouterEvent.emit();
167
167
  this.router.init();
168
168
 
169
- this.router.routeChange.on(({ route, routeInfo }) => {
170
- const menuNode = this.menu.findMenuNodeByID(routeInfo.menuId);
171
-
172
- this.menu.setCurrentMenuNode(menuNode);
173
-
174
- const tab =
175
- this.tabs.findTabByID(routeInfo.name) ??
176
- this.tabs.createTab({
177
- id: routeInfo.name,
178
- title: routeInfo.title,
179
- affix: route.matched?.[route.matched?.length - 1]?.meta?.affix,
180
- realRoute: route,
181
- route: routeInfo,
182
- });
183
-
184
- this.tabs.switchTab(tab);
185
- });
186
-
187
169
  return response;
188
170
  } catch (e) {
189
171
  httpRequest.getInterceptors().request.eject(beforeRequestInterceptorID);
@@ -94,7 +94,13 @@ export class Tabs extends Disposable {
94
94
 
95
95
  switchTab(tab: Tab | null) {
96
96
  // TODO 暂时用不到Tab
97
-
97
+
98
+ // if (
99
+ // this.getCurrentTab()?.realRoute?.fullPath === tab?.realRoute?.fullPath
100
+ // ) {
101
+ // return;
102
+ // }
103
+
98
104
  this.setCurrentTab(tab);
99
105
  return;
100
106
 
@@ -1,3 +1,4 @@
1
+ import { R } from "@maketribe/request";
1
2
  import {
2
3
  TableColumn,
3
4
  DataTable,
@@ -11,23 +12,22 @@ import {
11
12
  Dialoger,
12
13
  FormColumn,
13
14
  } from "@maketribe/dm";
14
- import { Event } from "@maketribe/utils";
15
15
  import { defineDataTable } from "../../define-data-table";
16
16
  import { Member, MemberForm, MemberResult } from "./MemberForm";
17
- import { R } from "@maketribe/request";
18
- import { MSAppClient } from "../../core";
19
17
 
20
18
  export type MemberTableItem = Omit<Member, "password" | "confirmPassword">;
21
19
 
22
20
  export class MemberTable extends DataTable<MemberResult, MemberTableItem> {
23
21
  activeMemberForm: MemberForm;
24
22
 
25
- activeMemberEvent: Event<MemberTableItem> = this.register(new Event());
23
+ isShowActiveMemberForm: boolean;
26
24
 
27
25
  constructor(options: DataTableOptions = {}) {
28
26
  super({ name: "ms-member", ...options });
29
27
 
30
28
  this.activeMemberForm = new MemberForm();
29
+
30
+ this.isShowActiveMemberForm = false;
31
31
  }
32
32
 
33
33
  protected async initialize() {
@@ -96,19 +96,17 @@ export class MemberTable extends DataTable<MemberResult, MemberTableItem> {
96
96
  new TableActionColumn({
97
97
  width: "200px",
98
98
  buttons: [
99
- new ActionButton({
100
- label: "test",
101
- handler: () => {
102
- MSAppClient.instance!.vueRouter.push({
103
- name: "dv/ms-role/single/list/dialog",
104
- query: { id: "8" },
105
- });
106
- },
107
- }),
108
99
  new ActionButton({
109
100
  label: "激活用户",
110
101
  handler: async (row) => {
111
- this.activeMemberEvent.emit(row);
102
+ const response = await this.activeMemberForm.editRecord(row.id);
103
+
104
+ if (response.data.code !== 200) {
105
+ Messager.instance.error({ message: response.data.msg });
106
+ return;
107
+ }
108
+
109
+ this.isShowActiveMemberForm = true;
112
110
  },
113
111
  predicate: (member: MemberTableItem) => member.valid === 0,
114
112
  }),
@@ -7,6 +7,7 @@ import {
7
7
  ActionButton,
8
8
  EditButton,
9
9
  DeleteButton,
10
+ ClassifySearchItem,
10
11
  } from "@maketribe/dm";
11
12
  import { defineDataTable } from "../../define-data-table";
12
13
  import { Role } from "./RoleForm";
@@ -14,7 +14,8 @@ export const MKBar = defineComponent({
14
14
  const msAppClient = MSAppClient.instance!;
15
15
  const userSession = msAppClient.userSession!;
16
16
  const menu = userSession.menu;
17
- const router = userSession.router;
17
+ const vueRouter = msAppClient.vueRouter;
18
+ // const router = userSession.router;
18
19
 
19
20
  const currentBarItem = computed(() => props.barItem);
20
21
 
@@ -30,7 +31,7 @@ export const MKBar = defineComponent({
30
31
  }
31
32
 
32
33
  if (target?.route) {
33
- router.changeRoute({ name: target.route.name });
34
+ vueRouter.push({ name: target.route.name });
34
35
  }
35
36
  };
36
37