@maketribe/ms-app 3.0.11 → 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/material-list/material-group-form-popover.vue2.js +8 -1
- package/dist/cjs/components/material-list/material-group-form-popover.vue2.js.map +1 -1
- package/dist/cjs/components/material-list/material-group.vue2.js +9 -7
- package/dist/cjs/components/material-list/material-group.vue2.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 +1 -8
- package/dist/cjs/core/tabs/Tabs.js.map +1 -1
- package/dist/cjs/dataview/material/MaterialMan.d.ts +1 -1
- package/dist/cjs/dataview/material/MaterialMan.js +1 -1
- package/dist/cjs/dataview/material/MaterialMan.js.map +1 -1
- package/dist/cjs/dataview/member/MemberTable.d.ts +1 -2
- package/dist/cjs/dataview/member/MemberTable.js +9 -3
- package/dist/cjs/dataview/member/MemberTable.js.map +1 -1
- package/dist/cjs/dataview/menu/MenuTable.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 +53 -11
- 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/material-list/material-group-form-popover.vue2.js +8 -1
- package/dist/esm/components/material-list/material-group-form-popover.vue2.js.map +1 -1
- package/dist/esm/components/material-list/material-group.vue2.js +9 -7
- package/dist/esm/components/material-list/material-group.vue2.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 +1 -8
- package/dist/esm/core/tabs/Tabs.js.map +1 -1
- package/dist/esm/dataview/material/MaterialMan.d.ts +1 -1
- package/dist/esm/dataview/material/MaterialMan.js +1 -1
- package/dist/esm/dataview/material/MaterialMan.js.map +1 -1
- package/dist/esm/dataview/member/MemberTable.d.ts +1 -2
- package/dist/esm/dataview/member/MemberTable.js +10 -4
- package/dist/esm/dataview/member/MemberTable.js.map +1 -1
- package/dist/esm/dataview/menu/MenuTable.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 +54 -12
- 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-popover.css +1 -1
- package/dist/style/components/data-filter.css +1 -1
- package/dist/style/components/index.css +1 -1
- package/dist/style/index.css +2 -2
- package/dist/style/src/components/data-filter-popover.scss +3 -3
- package/dist/style/src/components/data-filter.scss +0 -1
- package/dist/style/src/index.scss +9 -0
- 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/material-list/material-group-form-popover.vue +4 -2
- package/src/components/material-list/material-group.vue +13 -7
- 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 +20 -9
- package/src/dataview/material/MaterialMan.ts +1 -1
- package/src/dataview/member/MemberTable.tsx +12 -4
- package/src/dataview/menu/MenuTable.ts +1 -0
- 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 -11
- package/src/router-middleware/auth.ts +0 -35
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
&__footer {
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: space-between;
|
|
5
|
-
border-top: var(--
|
|
6
|
-
padding-top: var(--
|
|
7
|
-
margin-top: var(--
|
|
5
|
+
border-top: var(--mk-border);
|
|
6
|
+
padding-top: var(--mk-spacing-middle);
|
|
7
|
+
margin-top: var(--mk-spacing-large);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -2,3 +2,12 @@
|
|
|
2
2
|
@use "./components/index.scss" as *;
|
|
3
3
|
@use "./layouts" as *;
|
|
4
4
|
@use "./page/index.scss" as *;
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
--mk-spacing-small: 5px;
|
|
8
|
+
--mk-spacing-middle: 10px;
|
|
9
|
+
--mk-spacing-large: 15px;
|
|
10
|
+
|
|
11
|
+
--mk-border-color: #cccccc;
|
|
12
|
+
--mk-border: 1px solid var(--mk-border-color);
|
|
13
|
+
}
|
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,9 +20,9 @@
|
|
|
20
20
|
"vue": "^3.3.4",
|
|
21
21
|
"vue-codemirror": "^6.1.1",
|
|
22
22
|
"vue-router": "^4.2.4",
|
|
23
|
-
"@maketribe/
|
|
24
|
-
"@maketribe/
|
|
25
|
-
"@maketribe/
|
|
23
|
+
"@maketribe/utils": "^1.1.3",
|
|
24
|
+
"@maketribe/request": "^1.1.10",
|
|
25
|
+
"@maketribe/dm": "^3.0.8",
|
|
26
26
|
"@maketribe/locale": "^1.0.5"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
@@ -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>
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
</template>
|
|
13
13
|
|
|
14
14
|
<div>
|
|
15
|
-
<MKDataForm :data-form="materialGroupForm" v-loading="loading"
|
|
15
|
+
<MKDataForm :data-form="materialGroupForm" v-loading="loading">
|
|
16
|
+
<MKForm :data-form="materialGroupForm" />
|
|
17
|
+
</MKDataForm>
|
|
16
18
|
<div
|
|
17
19
|
style="
|
|
18
20
|
display: flex;
|
|
@@ -36,7 +38,7 @@
|
|
|
36
38
|
<script setup lang="ts">
|
|
37
39
|
import { Ref, computed, ref, unref } from "vue";
|
|
38
40
|
import { ElMessage } from "element-plus";
|
|
39
|
-
import { MKDataForm } from "../data-model/data-form";
|
|
41
|
+
import { MKDataForm, MKForm } from "../data-model/data-form";
|
|
40
42
|
import { MaterialGroupForm, MaterialMan } from "../../dataview/material";
|
|
41
43
|
|
|
42
44
|
const props = defineProps({
|
|
@@ -21,9 +21,8 @@
|
|
|
21
21
|
:auto-load="false"
|
|
22
22
|
:data-table="materialGroupTree"
|
|
23
23
|
highlight-current
|
|
24
|
-
@nodeClick="handleNodeClick"
|
|
25
24
|
>
|
|
26
|
-
<MKTree :data-tree="materialGroupTree">
|
|
25
|
+
<MKTree :data-tree="materialGroupTree" @nodeClick="handleNodeClick">
|
|
27
26
|
<template #node-tools="{ data }">
|
|
28
27
|
<div class="mk-material-group__tools" @click.stop>
|
|
29
28
|
<ElTooltip content="添加">
|
|
@@ -32,7 +31,9 @@
|
|
|
32
31
|
:material-man="materialMan"
|
|
33
32
|
:material-group-form="materialGroupForm"
|
|
34
33
|
>
|
|
35
|
-
<ElIcon @click="handleAddClick(data)"
|
|
34
|
+
<ElIcon @click="handleAddClick(data.data)">
|
|
35
|
+
<Plus />
|
|
36
|
+
</ElIcon>
|
|
36
37
|
</MaterialGroupFromPopper>
|
|
37
38
|
</span>
|
|
38
39
|
</ElTooltip>
|
|
@@ -42,13 +43,17 @@
|
|
|
42
43
|
:material-man="materialMan"
|
|
43
44
|
:material-group-form="materialGroupForm"
|
|
44
45
|
>
|
|
45
|
-
<ElIcon @click="handleEditClick(data)"
|
|
46
|
+
<ElIcon @click="handleEditClick(data.data)">
|
|
47
|
+
<Edit />
|
|
48
|
+
</ElIcon>
|
|
46
49
|
</MaterialGroupFromPopper>
|
|
47
50
|
</span>
|
|
48
51
|
</ElTooltip>
|
|
49
52
|
<ElTooltip content="删除">
|
|
50
53
|
<span class="mk-material-group__tools-item">
|
|
51
|
-
<ElIcon @click="handleDeleteClick(data)"
|
|
54
|
+
<ElIcon @click="handleDeleteClick(data.data)">
|
|
55
|
+
<Delete />
|
|
56
|
+
</ElIcon>
|
|
52
57
|
</span>
|
|
53
58
|
</ElTooltip>
|
|
54
59
|
</div>
|
|
@@ -74,6 +79,7 @@ import { MKDataTable, MKTree } from "../data-model/data-table";
|
|
|
74
79
|
|
|
75
80
|
import { useI18n } from "../../composables";
|
|
76
81
|
import MaterialGroupFromPopper from "./material-group-form-popover.vue";
|
|
82
|
+
import { DataTreeNode } from "@maketribe/dm";
|
|
77
83
|
|
|
78
84
|
const props = defineProps({
|
|
79
85
|
materialMan: {
|
|
@@ -92,9 +98,9 @@ const materialGroupTree = computed(() => props.materialMan.materialGroupTree);
|
|
|
92
98
|
|
|
93
99
|
const loading = computed(() => props.materialMan.materialGroupTree.loading);
|
|
94
100
|
|
|
95
|
-
const handleNodeClick = (item: MaterialGroupNode) => {
|
|
101
|
+
const handleNodeClick = (item: DataTreeNode<MaterialGroupNode>) => {
|
|
96
102
|
if (!item.children.length) {
|
|
97
|
-
props.materialMan.
|
|
103
|
+
props.materialMan.setCurrentMaterialGroup(item.data);
|
|
98
104
|
}
|
|
99
105
|
};
|
|
100
106
|
|
|
@@ -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);
|