@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.
- package/dist/cjs/components/data-model/data-filter-form/composables/use-condition.js +14 -14
- package/dist/cjs/components/data-model/data-filter-form/composables/use-condition.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js +1 -1
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form-options.d.ts +3 -3
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form-options.js +2 -1
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form-options.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form.d.ts +4 -4
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js +34 -5
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/index.d.ts +4 -4
- package/dist/cjs/components/data-model/data-filter-form/token.d.ts +1 -0
- package/dist/cjs/components/data-model/data-filter-form/token.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-popover/data-filter-popover.js +4 -3
- package/dist/cjs/components/data-model/data-filter-popover/data-filter-popover.js.map +1 -1
- package/dist/cjs/components/data-model/data-form/data-form.js +1 -1
- package/dist/cjs/components/data-model/data-form/data-form.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/data-table.js +0 -1
- package/dist/cjs/components/data-model/data-table/data-table.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/views/table-view/table-view.js +35 -30
- package/dist/cjs/components/data-model/data-table/views/table-view/table-view.js.map +1 -1
- package/dist/cjs/components/system-provider/system-provider.d.ts +7 -0
- package/dist/cjs/components/system-provider/system-provider.js +29 -46
- package/dist/cjs/components/system-provider/system-provider.js.map +1 -1
- package/dist/cjs/core/Router.d.ts +1 -11
- package/dist/cjs/core/Router.js +0 -22
- package/dist/cjs/core/Router.js.map +1 -1
- package/dist/cjs/core/UserSession.js +0 -12
- package/dist/cjs/core/UserSession.js.map +1 -1
- package/dist/cjs/core/tabs/Tabs.js.map +1 -1
- package/dist/cjs/dataview/member/MemberTable.d.ts +1 -2
- package/dist/cjs/dataview/member/MemberTable.js +9 -16
- package/dist/cjs/dataview/member/MemberTable.js.map +1 -1
- package/dist/cjs/dataview/role/RoleTable.js.map +1 -1
- package/dist/cjs/layouts/components/bar/index.js +2 -2
- package/dist/cjs/layouts/components/bar/index.js.map +1 -1
- package/dist/cjs/layouts/components/menu/index.js +2 -2
- package/dist/cjs/layouts/components/menu/index.js.map +1 -1
- package/dist/cjs/page/index/dv/ms-member/index.vue2.js +54 -15
- package/dist/cjs/page/index/dv/ms-member/index.vue2.js.map +1 -1
- package/dist/cjs/router-middleware/auth.js +0 -19
- package/dist/cjs/router-middleware/auth.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/composables/use-condition.js +14 -14
- package/dist/esm/components/data-model/data-filter-form/composables/use-condition.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js +1 -1
- package/dist/esm/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/data-filter-form-options.d.ts +3 -3
- package/dist/esm/components/data-model/data-filter-form/data-filter-form-options.js +3 -2
- package/dist/esm/components/data-model/data-filter-form/data-filter-form-options.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/data-filter-form.d.ts +4 -4
- package/dist/esm/components/data-model/data-filter-form/data-filter-form.js +35 -6
- package/dist/esm/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/index.d.ts +4 -4
- package/dist/esm/components/data-model/data-filter-form/token.d.ts +1 -0
- package/dist/esm/components/data-model/data-filter-form/token.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-popover/data-filter-popover.js +5 -4
- package/dist/esm/components/data-model/data-filter-popover/data-filter-popover.js.map +1 -1
- package/dist/esm/components/data-model/data-form/data-form.js +1 -1
- package/dist/esm/components/data-model/data-form/data-form.js.map +1 -1
- package/dist/esm/components/data-model/data-table/data-table.js +0 -1
- package/dist/esm/components/data-model/data-table/data-table.js.map +1 -1
- package/dist/esm/components/data-model/data-table/views/table-view/table-view.js +35 -30
- package/dist/esm/components/data-model/data-table/views/table-view/table-view.js.map +1 -1
- package/dist/esm/components/system-provider/system-provider.d.ts +7 -0
- package/dist/esm/components/system-provider/system-provider.js +30 -47
- package/dist/esm/components/system-provider/system-provider.js.map +1 -1
- package/dist/esm/core/Router.d.ts +1 -11
- package/dist/esm/core/Router.js +1 -23
- package/dist/esm/core/Router.js.map +1 -1
- package/dist/esm/core/UserSession.js +0 -12
- package/dist/esm/core/UserSession.js.map +1 -1
- package/dist/esm/core/tabs/Tabs.js.map +1 -1
- package/dist/esm/dataview/member/MemberTable.d.ts +1 -2
- package/dist/esm/dataview/member/MemberTable.js +10 -17
- package/dist/esm/dataview/member/MemberTable.js.map +1 -1
- package/dist/esm/dataview/role/RoleTable.js.map +1 -1
- package/dist/esm/layouts/components/bar/index.js +2 -2
- package/dist/esm/layouts/components/bar/index.js.map +1 -1
- package/dist/esm/layouts/components/menu/index.js +2 -2
- package/dist/esm/layouts/components/menu/index.js.map +1 -1
- package/dist/esm/page/index/dv/ms-member/index.vue2.js +55 -16
- package/dist/esm/page/index/dv/ms-member/index.vue2.js.map +1 -1
- package/dist/esm/router-middleware/auth.js +0 -19
- package/dist/esm/router-middleware/auth.js.map +1 -1
- package/dist/style/components/data-filter.css +1 -1
- package/dist/style/components/index.css +1 -1
- package/dist/style/index.css +1 -1
- package/dist/style/src/components/data-filter.scss +0 -1
- package/package.json +4 -4
- package/src/components/data-model/data-filter-form/composables/use-condition.ts +19 -16
- package/src/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.tsx +7 -4
- package/src/components/data-model/data-filter-form/data-filter-form-options.ts +3 -2
- package/src/components/data-model/data-filter-form/data-filter-form.tsx +51 -6
- package/src/components/data-model/data-filter-form/token.ts +1 -0
- package/src/components/data-model/data-filter-popover/data-filter-popover.tsx +4 -3
- package/src/components/data-model/data-form/data-form.tsx +3 -1
- package/src/components/data-model/data-table/data-table.tsx +5 -1
- package/src/components/data-model/data-table/views/table-view/table-view.tsx +43 -35
- package/src/components/system-provider/system-provider.tsx +52 -49
- package/src/core/Router.ts +0 -34
- package/src/core/UserSession.ts +0 -18
- package/src/core/tabs/Tabs.ts +7 -1
- package/src/dataview/member/MemberTable.tsx +12 -14
- package/src/dataview/role/RoleTable.ts +1 -0
- package/src/layouts/components/bar/index.tsx +3 -2
- package/src/layouts/components/menu/index.tsx +3 -2
- package/src/page/index/dv/ms-member/index.vue +3 -16
- package/src/router-middleware/auth.ts +0 -35
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maketribe/ms-app",
|
|
3
|
-
"version": "3.0.
|
|
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/
|
|
24
|
-
"@maketribe/locale": "^1.0.5",
|
|
23
|
+
"@maketribe/utils": "^1.1.3",
|
|
25
24
|
"@maketribe/request": "^1.1.10",
|
|
26
|
-
"@maketribe/
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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,
|
package/src/components/data-model/data-filter-form/data-filter-form-item/data-filter-form-item.tsx
CHANGED
|
@@ -164,13 +164,16 @@ export default defineComponent({
|
|
|
164
164
|
</ElSelect>
|
|
165
165
|
) : null;
|
|
166
166
|
|
|
167
|
-
const labelWidth = computed(()=>
|
|
167
|
+
const labelWidth = computed(() => dataFilterContext.labelWidth);
|
|
168
168
|
|
|
169
169
|
return (
|
|
170
170
|
<div class="mk-data-filter-form-item">
|
|
171
|
-
<div
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
30
|
+
const labelWidth = computed(() => {
|
|
31
|
+
const maxWordCount = Math.max(
|
|
32
|
+
...unref(columns).map((column) => column.label.length)
|
|
33
|
+
);
|
|
26
34
|
|
|
27
|
-
|
|
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
|
|
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
|
});
|
|
@@ -8,10 +8,11 @@ export default defineComponent({
|
|
|
8
8
|
name: "MKDataFilterPopover",
|
|
9
9
|
props: dataFilterPopoverProps,
|
|
10
10
|
setup(props, { slots }) {
|
|
11
|
-
const
|
|
11
|
+
const dataTable = computed(() => props.dataTable);
|
|
12
|
+
const dataFilter = computed(() => unref(dataTable).dataFilter);
|
|
12
13
|
|
|
13
14
|
const handleSearch = () => {
|
|
14
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
取消选择
|
|
82
|
-
</ElButton>
|
|
86
|
+
onClick={() => _dataTable.clearSelection()}
|
|
87
|
+
>
|
|
88
|
+
取消选择
|
|
89
|
+
</ElButton>
|
|
90
|
+
</div>
|
|
83
91
|
</div>
|
|
84
|
-
|
|
85
|
-
|
|
92
|
+
);
|
|
93
|
+
}
|
|
86
94
|
|
|
87
95
|
return (
|
|
88
96
|
<Fragment>
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
33
|
+
watch(
|
|
34
|
+
computed(() => unref(vueRouter.currentRoute)),
|
|
35
|
+
(route) => {
|
|
36
|
+
const userSession = msAppClient.userSession;
|
|
23
37
|
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
a.href = routeInfo.path;
|
|
42
|
+
const router = userSession.router;
|
|
43
|
+
const menu = userSession.menu;
|
|
44
|
+
const tabs = userSession.tabs;
|
|
38
45
|
|
|
39
|
-
|
|
46
|
+
const routeInfo = router.getRouteByName(route.name as string);
|
|
40
47
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
break;
|
|
48
|
+
if (!routeInfo) {
|
|
49
|
+
menu.setCurrentMenuNode(null);
|
|
50
|
+
tabs.setCurrentTab(null);
|
|
51
|
+
return;
|
|
48
52
|
}
|
|
49
|
-
});
|
|
50
53
|
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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 (
|
package/src/core/Router.ts
CHANGED
|
@@ -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
|
}
|
package/src/core/UserSession.ts
CHANGED
|
@@ -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);
|
package/src/core/tabs/Tabs.ts
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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
|
}),
|
|
@@ -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
|
|
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
|
-
|
|
34
|
+
vueRouter.push({ name: target.route.name });
|
|
34
35
|
}
|
|
35
36
|
};
|
|
36
37
|
|