@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.js","sources":["../../../../../src/components/data-model/data-table/data-table.tsx"],"sourcesContent":["import { DataTable, TableColumn } from \"@maketribe/dm\";\nimport {\n computed,\n defineComponent,\n provide,\n reactive,\n unref,\n watch,\n} from \"vue\";\nimport { dataTableProps } from \"./data-table-options\";\nimport { DATATABLE_CONTEXT_KEY } from \"./token\";\nimport MKTableView from \"./views/table-view\";\n\nexport default defineComponent({\n name: \"MKDataTable\",\n props: dataTableProps,\n setup(props, { slots }) {\n let _dataTable: DataTable | null = null;\n\n const dataTable = computed(() => {\n if (props.dataTable instanceof DataTable) {\n return props.dataTable;\n }\n\n if (!_dataTable) {\n _dataTable = reactive(\n new DataTable({\n name: props.name!,\n primaryKey: props.primaryKey,\n pageSize: props.pageSize ?? 20,\n interfaceURL: {\n list: props.listInterfaceURL || \"\",\n delete: props.deleteInterfaceURL || \"\",\n },\n })\n ) as DataTable;\n }\n\n return _dataTable;\n });\n\n watch(\n dataTable,\n async (dataTable) => {\n dataTable.dataFilter.setReady();\n if (props.autoLoad) {\n dataTable.load();\n }\n\n let columns = unref(dataTable).getColumns();\n\n const extractColumnConfig = props.columns.filter(\n (config) =>\n columns.findIndex((column) => column.name === config.name) === -1\n );\n\n const extractColumn = extractColumnConfig.map(\n (config) => new TableColumn({ visible: true, ...config })\n );\n\n columns = [...extractColumn, ...columns];\n\n let sortedColumns: TableColumn[] = [];\n for (const columnConfig of props.columns) {\n const column = columns.find(\n (column) => column.name === columnConfig.name\n )!;\n\n sortedColumns.push(column);\n }\n\n const _columns = columns.filter(\n (column) =>\n sortedColumns.findIndex((item) => item.name === column.name) === -1\n );\n\n sortedColumns = [...sortedColumns, ..._columns];\n\n dataTable.setColumns(sortedColumns);\n\n await dataTable.init();\n },\n { immediate: true }\n );\n\n provide(DATATABLE_CONTEXT_KEY, reactive({ dataTable }));\n\n return () => {\n return (\n <div class=\"mk-data-table\">\n {slots.default?.({ dataTable: unref(dataTable) }) || (\n <MKTableView dataTable={unref(dataTable)} />\n )}\n </div>\n );\n };\n },\n});\n"],"names":["name","props","dataTableProps","setup","slots","_dataTable","dataTable","computed","DataTable","reactive","primaryKey","pageSize","interfaceURL","list","listInterfaceURL","delete","deleteInterfaceURL","watch","
|
|
1
|
+
{"version":3,"file":"data-table.js","sources":["../../../../../src/components/data-model/data-table/data-table.tsx"],"sourcesContent":["import { DataTable, TableColumn } from \"@maketribe/dm\";\nimport {\n computed,\n defineComponent,\n nextTick,\n provide,\n reactive,\n unref,\n watch,\n} from \"vue\";\nimport { dataTableProps } from \"./data-table-options\";\nimport { DATATABLE_CONTEXT_KEY } from \"./token\";\nimport MKTableView from \"./views/table-view\";\n\nexport default defineComponent({\n name: \"MKDataTable\",\n props: dataTableProps,\n setup(props, { slots }) {\n let _dataTable: DataTable | null = null;\n\n const dataTable = computed(() => {\n if (props.dataTable instanceof DataTable) {\n return props.dataTable;\n }\n\n if (!_dataTable) {\n _dataTable = reactive(\n new DataTable({\n name: props.name!,\n primaryKey: props.primaryKey,\n pageSize: props.pageSize ?? 20,\n interfaceURL: {\n list: props.listInterfaceURL || \"\",\n delete: props.deleteInterfaceURL || \"\",\n },\n })\n ) as DataTable;\n }\n\n return _dataTable;\n });\n\n watch(\n dataTable,\n async (dataTable) => {\n // nextTick(() => {\n // dataTable.dataFilter.setReady();\n // });\n\n if (props.autoLoad) {\n dataTable.load();\n }\n\n let columns = unref(dataTable).getColumns();\n\n const extractColumnConfig = props.columns.filter(\n (config) =>\n columns.findIndex((column) => column.name === config.name) === -1\n );\n\n const extractColumn = extractColumnConfig.map(\n (config) => new TableColumn({ visible: true, ...config })\n );\n\n columns = [...extractColumn, ...columns];\n\n let sortedColumns: TableColumn[] = [];\n for (const columnConfig of props.columns) {\n const column = columns.find(\n (column) => column.name === columnConfig.name\n )!;\n\n sortedColumns.push(column);\n }\n\n const _columns = columns.filter(\n (column) =>\n sortedColumns.findIndex((item) => item.name === column.name) === -1\n );\n\n sortedColumns = [...sortedColumns, ..._columns];\n\n dataTable.setColumns(sortedColumns);\n\n await dataTable.init();\n },\n { immediate: true }\n );\n\n provide(DATATABLE_CONTEXT_KEY, reactive({ dataTable }));\n\n return () => {\n return (\n <div class=\"mk-data-table\">\n {slots.default?.({ dataTable: unref(dataTable) }) || (\n <MKTableView dataTable={unref(dataTable)} />\n )}\n </div>\n );\n };\n },\n});\n"],"names":["name","props","dataTableProps","setup","slots","_dataTable","dataTable","computed","DataTable","reactive","primaryKey","pageSize","interfaceURL","list","listInterfaceURL","delete","deleteInterfaceURL","watch","autoLoad","load","columns","unref","getColumns","extractColumnConfig","filter","config","findIndex","column","extractColumn","map","TableColumn","visible","sortedColumns","columnConfig","find","push","_columns","item","setColumns","init","immediate","provide","DATATABLE_CONTEXT_KEY","_createVNode","default","MKTableView"],"mappings":"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"}
|
|
@@ -40,36 +40,41 @@ var TableView = /* @__PURE__ */ defineComponent({
|
|
|
40
40
|
if (!classifySearch && _dataTable.classifySearch.getClassifySearchItems().length) {
|
|
41
41
|
classifySearch = createVNode(MKTableClassifySearch, null, null);
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
43
|
+
let tools;
|
|
44
|
+
if (!_dataTable.getSelection().length) {
|
|
45
|
+
tools = createVNode(Fragment, null, [createVNode("div", {
|
|
46
|
+
"class": "header-box-main"
|
|
47
|
+
}, null), createVNode("div", {
|
|
48
|
+
"class": "header-box-tools"
|
|
49
|
+
}, [createVNode(MKDataFilterPopover, {
|
|
50
|
+
"dataTable": _dataTable
|
|
51
|
+
}, {
|
|
52
|
+
default: () => [createVNode(ElButton, null, {
|
|
53
|
+
default: () => [createVNode(MKSvgIcon, {
|
|
54
|
+
"iconClass": "Filter"
|
|
55
|
+
}, null)]
|
|
56
|
+
})]
|
|
57
|
+
}), buttons])]);
|
|
58
|
+
} else {
|
|
59
|
+
tools = createVNode("div", {
|
|
60
|
+
"class": "mk-table-view__selection-tip"
|
|
61
|
+
}, [createVNode("div", {
|
|
62
|
+
"class": "mk-table-view__selection-tip-left"
|
|
63
|
+
}, [createVNode("span", null, [createTextVNode("\u5DF2\u9009\u4E2D"), createVNode("span", {
|
|
64
|
+
"class": "selection-count"
|
|
65
|
+
}, [_dataTable.getSelection().length]), createTextVNode("\u9879")])]), createVNode("div", {
|
|
66
|
+
"class": "mk-table-view__selection-tip-right"
|
|
67
|
+
}, [_dataTable.batchActionButtonTools.map((button) => createVNode(MKButton, {
|
|
68
|
+
"link": true,
|
|
69
|
+
"button": button,
|
|
70
|
+
"onClick": () => button.handler()
|
|
71
|
+
}, null)), createVNode(ElButton, {
|
|
72
|
+
"link": true,
|
|
73
|
+
"onClick": () => _dataTable.clearSelection()
|
|
74
|
+
}, {
|
|
75
|
+
default: () => [createTextVNode("\u53D6\u6D88\u9009\u62E9")]
|
|
76
|
+
})])]);
|
|
77
|
+
}
|
|
73
78
|
return createVNode(Fragment, null, [classifySearch, createVNode("div", {
|
|
74
79
|
"class": "mk-table-view__header header-box"
|
|
75
80
|
}, [tools])]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-view.js","sources":["../../../../../../../src/components/data-model/data-table/views/table-view/table-view.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, unref } from \"vue\";\nimport { ElButton, ElCard } from \"element-plus\";\n\nimport { MKButton } from \"../../../../button\";\nimport { MKTableClassifySearch } from \"./classify-search\";\nimport { MKDataTablePagination } from \"../../../data-table-pagination\";\nimport { MKDataFilterPopover } from \"../../../data-filter-popover\";\nimport { MKSvgIcon } from \"../../../../svg-icon\";\nimport { MKTable } from \"../table\";\nimport { tableViewProps } from \"./table-view-options\";\n\nexport default defineComponent({\n name: \"MKTableView\",\n props: tableViewProps,\n setup(props, { slots }) {\n const dataTable = computed(() => props.dataTable);\n\n const pageSizes = computed(() => unref(dataTable).pageSizes);\n\n return () => {\n const pagination =\n slots.pagination?.({ dataTable: unref(dataTable) }) ||\n (unref(pageSizes).length ? (\n <MKDataTablePagination dataTable={unref(dataTable)} />\n ) : null);\n\n return (\n <ElCard\n class=\"mk-table-view\"\n v-slots={{\n header: () => {\n const _dataTable = unref(dataTable);\n\n const buttons = _dataTable.buttonTools\n .filter((button) => button.predicate())\n .map((button) => (\n <MKButton button={button} onClick={() => button.handler()} />\n ));\n\n let classifySearch: any = slots[\"classify-search\"]?.() ?? null;\n if (\n !classifySearch &&\n _dataTable.classifySearch.getClassifySearchItems().length\n ) {\n classifySearch = <MKTableClassifySearch />;\n }\n\n
|
|
1
|
+
{"version":3,"file":"table-view.js","sources":["../../../../../../../src/components/data-model/data-table/views/table-view/table-view.tsx"],"sourcesContent":["import { Fragment, VNode, computed, defineComponent, unref } from \"vue\";\nimport { ElButton, ElCard } from \"element-plus\";\n\nimport { MKButton } from \"../../../../button\";\nimport { MKTableClassifySearch } from \"./classify-search\";\nimport { MKDataTablePagination } from \"../../../data-table-pagination\";\nimport { MKDataFilterPopover } from \"../../../data-filter-popover\";\nimport { MKSvgIcon } from \"../../../../svg-icon\";\nimport { MKTable } from \"../table\";\nimport { tableViewProps } from \"./table-view-options\";\n\nexport default defineComponent({\n name: \"MKTableView\",\n props: tableViewProps,\n setup(props, { slots }) {\n const dataTable = computed(() => props.dataTable);\n\n const pageSizes = computed(() => unref(dataTable).pageSizes);\n\n return () => {\n const pagination =\n slots.pagination?.({ dataTable: unref(dataTable) }) ||\n (unref(pageSizes).length ? (\n <MKDataTablePagination dataTable={unref(dataTable)} />\n ) : null);\n\n return (\n <ElCard\n class=\"mk-table-view\"\n v-slots={{\n header: () => {\n const _dataTable = unref(dataTable);\n\n const buttons = _dataTable.buttonTools\n .filter((button) => button.predicate())\n .map((button) => (\n <MKButton button={button} onClick={() => button.handler()} />\n ));\n\n let classifySearch: any = slots[\"classify-search\"]?.() ?? null;\n if (\n !classifySearch &&\n _dataTable.classifySearch.getClassifySearchItems().length\n ) {\n classifySearch = <MKTableClassifySearch />;\n }\n\n let tools: VNode;\n\n if (!_dataTable.getSelection().length) {\n tools = (\n <Fragment>\n <div class=\"header-box-main\"></div>\n <div class=\"header-box-tools\">\n <MKDataFilterPopover dataTable={_dataTable}>\n <ElButton>\n <MKSvgIcon iconClass=\"Filter\" />\n </ElButton>\n </MKDataFilterPopover>\n {buttons}\n </div>\n </Fragment>\n );\n } else {\n tools = (\n <div class=\"mk-table-view__selection-tip\">\n <div class=\"mk-table-view__selection-tip-left\">\n <span>\n 已选中\n <span class=\"selection-count\">\n {_dataTable.getSelection().length}\n </span>\n 项\n </span>\n </div>\n <div class=\"mk-table-view__selection-tip-right\">\n {_dataTable.batchActionButtonTools.map((button) => (\n <MKButton\n link\n button={button}\n onClick={() => button.handler()}\n />\n ))}\n <ElButton\n link\n onClick={() => _dataTable.clearSelection()}\n >\n 取消选择\n </ElButton>\n </div>\n </div>\n );\n }\n\n return (\n <Fragment>\n {classifySearch}\n <div class=\"mk-table-view__header header-box\">{tools}</div>\n </Fragment>\n );\n },\n }}\n >\n {slots.default?.({ dataTable: unref(dataTable) }) || (\n <MKTable dataTable={unref(dataTable)} />\n )}\n {pagination}\n </ElCard>\n );\n };\n },\n});\n"],"names":["name","props","tableViewProps","setup","slots","dataTable","computed","pageSizes","unref","pagination","length","_createVNode","MKDataTablePagination","ElCard","default","MKTable","header","_dataTable","buttons","buttonTools","filter","button","predicate","map","MKButton","onClick","handler","classifySearch","getClassifySearchItems","MKTableClassifySearch","tools","getSelection","_Fragment","MKDataFilterPopover","ElButton","MKSvgIcon","_createTextVNode","batchActionButtonTools","clearSelection"],"mappings":"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"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 路由变动的几种情况,
|
|
3
|
+
* 1.点击菜单跳转陆游
|
|
4
|
+
* 2.特定业务逻辑需要跳转路由
|
|
5
|
+
* 3.返回上一页
|
|
6
|
+
* 4.刷新页面
|
|
7
|
+
*/
|
|
1
8
|
declare const _default: import("vue").DefineComponent<{}, () => JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
|
2
9
|
export default _default;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { defineComponent, computed, useSlots, createVNode, renderSlot, isVNode } from 'vue';
|
|
1
|
+
import { defineComponent, computed, useSlots, watch, unref, createVNode, renderSlot, isVNode } from 'vue';
|
|
2
2
|
import { useRouter } from 'vue-router';
|
|
3
3
|
import '@maketribe/dm';
|
|
4
4
|
import 'element-plus';
|
|
5
5
|
import '@maketribe/utils';
|
|
6
6
|
import '../../core/DataModelDefines.js';
|
|
7
7
|
import { MSAppClient } from '../../core/MSAppClient.js';
|
|
8
|
-
import { RouteType } from '../../constants/route.js';
|
|
9
8
|
import { MKConfigProvider } from '../config-provider/index.js';
|
|
10
9
|
|
|
11
10
|
function _isSlot(s) {
|
|
@@ -18,53 +17,37 @@ var SystemProvider = /* @__PURE__ */ defineComponent({
|
|
|
18
17
|
const msAppClient = MSAppClient.instance;
|
|
19
18
|
computed(() => msAppClient.ready);
|
|
20
19
|
const slots = useSlots();
|
|
21
|
-
|
|
22
|
-
const
|
|
20
|
+
watch(computed(() => unref(vueRouter.currentRoute)), (route) => {
|
|
21
|
+
const userSession = msAppClient.userSession;
|
|
22
|
+
if (!userSession) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
23
25
|
const router = userSession.router;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
case RouteType.ROUTE:
|
|
38
|
-
if (routeInfo.name === currentTab?.route.name) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
tabs.currentTabChangeEvent.on(({
|
|
45
|
-
currentTab
|
|
46
|
-
}) => {
|
|
47
|
-
if (!currentTab) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
try {
|
|
51
|
-
vueRouter.push(currentTab.realRoute ?? {
|
|
52
|
-
name: currentTab.route.name
|
|
53
|
-
});
|
|
54
|
-
} catch (e) {
|
|
55
|
-
console.error(e);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
if (msAppClient.userSession) {
|
|
60
|
-
initUserSession(msAppClient.userSession);
|
|
61
|
-
}
|
|
62
|
-
msAppClient.userSessionChangeEvent.on(({
|
|
63
|
-
userSession
|
|
64
|
-
}) => {
|
|
65
|
-
if (userSession) {
|
|
66
|
-
initUserSession(userSession);
|
|
26
|
+
const menu = userSession.menu;
|
|
27
|
+
const tabs = userSession.tabs;
|
|
28
|
+
const routeInfo = router.getRouteByName(route.name);
|
|
29
|
+
if (!routeInfo) {
|
|
30
|
+
menu.setCurrentMenuNode(null);
|
|
31
|
+
tabs.setCurrentTab(null);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const menuNode = menu.findMenuNodeByID(routeInfo.menuId);
|
|
35
|
+
if (!menuNode) {
|
|
36
|
+
menu.setCurrentMenuNode(null);
|
|
37
|
+
tabs.setCurrentTab(null);
|
|
38
|
+
return;
|
|
67
39
|
}
|
|
40
|
+
menu.setCurrentMenuNode(menuNode);
|
|
41
|
+
const tab = tabs.findTabByID(route.fullPath) ?? tabs.createTab({
|
|
42
|
+
id: route.fullPath,
|
|
43
|
+
title: routeInfo.title,
|
|
44
|
+
affix: !!route.matched?.[route.matched?.length - 1]?.meta?.affix,
|
|
45
|
+
realRoute: route,
|
|
46
|
+
route: routeInfo
|
|
47
|
+
});
|
|
48
|
+
tabs.switchTab(tab);
|
|
49
|
+
}, {
|
|
50
|
+
immediate: true
|
|
68
51
|
});
|
|
69
52
|
return () => {
|
|
70
53
|
let _slot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-provider.js","sources":["../../../../src/components/system-provider/system-provider.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"system-provider.js","sources":["../../../../src/components/system-provider/system-provider.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n renderSlot,\n unref,\n useSlots,\n watch,\n} from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { Components } from \"@maketribe/dm\";\nimport { MSAppClient } from \"../../core\";\nimport { MKConfigProvider } from \"../config-provider\";\n\n/**\n * 路由变动的几种情况,\n * 1.点击菜单跳转陆游\n * 2.特定业务逻辑需要跳转路由\n * 3.返回上一页\n * 4.刷新页面\n */\n\nexport default defineComponent({\n name: \"MKSystemProvider\",\n setup() {\n const vueRouter = useRouter();\n\n const msAppClient = MSAppClient.instance!;\n\n const ready = computed(() => msAppClient.ready);\n\n const slots = useSlots();\n\n watch(\n computed(() => unref(vueRouter.currentRoute)),\n (route) => {\n const userSession = msAppClient.userSession;\n\n if (!userSession) {\n return;\n }\n\n const router = userSession.router;\n const menu = userSession.menu;\n const tabs = userSession.tabs;\n\n const routeInfo = router.getRouteByName(route.name as string);\n\n if (!routeInfo) {\n menu.setCurrentMenuNode(null);\n tabs.setCurrentTab(null);\n return;\n }\n\n const menuNode = menu.findMenuNodeByID(routeInfo.menuId);\n\n if (!menuNode) {\n menu.setCurrentMenuNode(null);\n tabs.setCurrentTab(null);\n return;\n }\n\n menu.setCurrentMenuNode(menuNode);\n\n const tab =\n tabs.findTabByID(route.fullPath) ??\n tabs.createTab({\n id: route.fullPath,\n title: routeInfo.title,\n affix: !!route.matched?.[route.matched?.length - 1]?.meta?.affix,\n realRoute: route,\n route: routeInfo,\n });\n\n tabs.switchTab(tab);\n },\n { immediate: true }\n );\n\n return () => {\n return (\n <MKConfigProvider\n dataTableComponents={msAppClient.dataTableComponents as Components}\n dataFormComponents={msAppClient.dataFormComponents as Components}\n dataFilterComponents={msAppClient.dataFilterComponents as Components}\n whereFilterComponents={\n msAppClient.whereFilterComponents as Components\n }\n i18n={msAppClient.i18n}\n >\n {renderSlot(slots, \"default\")}\n </MKConfigProvider>\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","name","setup","vueRouter","useRouter","msAppClient","MSAppClient","instance","computed","ready","slots","useSlots","watch","unref","currentRoute","route","userSession","router","menu","tabs","routeInfo","getRouteByName","setCurrentMenuNode","setCurrentTab","menuNode","findMenuNodeByID","menuId","tab","findTabByID","fullPath","createTab","id","title","affix","matched","length","meta","realRoute","switchTab","immediate","_slot","_createVNode","MKConfigProvider","dataTableComponents","dataFormComponents","dataFilterComponents","whereFilterComponents","i18n","renderSlot","default"],"mappings":"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"}
|
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
import { Disposable
|
|
1
|
+
import { Disposable } from "@maketribe/utils";
|
|
2
2
|
import { Route } from "../dataview";
|
|
3
3
|
import type { UserSession } from "./UserSession";
|
|
4
4
|
export declare class Router extends Disposable {
|
|
5
5
|
userSession: UserSession;
|
|
6
6
|
routes: Route[];
|
|
7
|
-
currentRoute: any | null;
|
|
8
|
-
beforeRouteChange: Event<{
|
|
9
|
-
routeInfo: Route;
|
|
10
|
-
route: any;
|
|
11
|
-
}>;
|
|
12
|
-
routeChange: Event<{
|
|
13
|
-
routeInfo: Route;
|
|
14
|
-
route: any;
|
|
15
|
-
}>;
|
|
16
7
|
constructor(userSession: UserSession);
|
|
17
8
|
setRoutes(routes: Route[]): void;
|
|
18
9
|
init(): void;
|
|
19
10
|
getRouteByName(name: string): Route | null;
|
|
20
11
|
getRouteByID(id: string): Route | null;
|
|
21
12
|
getRoutesByMenuID(menuId: Route["menuId"]): Route[];
|
|
22
|
-
changeRoute(route: any): Promise<boolean>;
|
|
23
13
|
}
|
package/dist/esm/core/Router.js
CHANGED
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import { Disposable,
|
|
1
|
+
import { Disposable, createDisposable } from '@maketribe/utils';
|
|
2
2
|
|
|
3
3
|
const NORMALIZE_ROUTE_NAME_REG = /^dv\/([^/]+)\/([^/]+)(\/.+)?$/;
|
|
4
4
|
class Router extends Disposable {
|
|
5
5
|
userSession;
|
|
6
6
|
routes = [];
|
|
7
|
-
currentRoute = null;
|
|
8
|
-
beforeRouteChange = this.register(
|
|
9
|
-
new Event()
|
|
10
|
-
);
|
|
11
|
-
routeChange = this.register(
|
|
12
|
-
new Event()
|
|
13
|
-
);
|
|
14
7
|
constructor(userSession) {
|
|
15
8
|
super();
|
|
16
9
|
this.userSession = userSession;
|
|
@@ -122,21 +115,6 @@ class Router extends Disposable {
|
|
|
122
115
|
getRoutesByMenuID(menuId) {
|
|
123
116
|
return this.routes.filter((route) => route.menuId === menuId);
|
|
124
117
|
}
|
|
125
|
-
async changeRoute(route) {
|
|
126
|
-
if (!route) {
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
const routeInfo = this.getRouteByName(route.name);
|
|
130
|
-
if (!routeInfo) {
|
|
131
|
-
return true;
|
|
132
|
-
}
|
|
133
|
-
if (await this.beforeRouteChange.emitAsync({ route, routeInfo }) !== false) {
|
|
134
|
-
this.currentRoute = route;
|
|
135
|
-
this.routeChange.emit({ route, routeInfo });
|
|
136
|
-
return true;
|
|
137
|
-
}
|
|
138
|
-
return false;
|
|
139
|
-
}
|
|
140
118
|
}
|
|
141
119
|
|
|
142
120
|
export { Router };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sources":["../../../src/core/Router.ts"],"sourcesContent":["import { Disposable, Event, createDisposable } from \"@maketribe/utils\";\nimport { Route } from \"../dataview\";\nimport type { UserSession } from \"./UserSession\";\n\nconst NORMALIZE_ROUTE_NAME_REG = /^dv\\/([^/]+)\\/([^/]+)(\\/.+)?$/;\n\nexport class Router extends Disposable {\n userSession: UserSession;\n\n routes: Route[] = [];\n\n
|
|
1
|
+
{"version":3,"file":"Router.js","sources":["../../../src/core/Router.ts"],"sourcesContent":["import { Disposable, Event, createDisposable } from \"@maketribe/utils\";\nimport { Route } from \"../dataview\";\nimport type { UserSession } from \"./UserSession\";\n\nconst NORMALIZE_ROUTE_NAME_REG = /^dv\\/([^/]+)\\/([^/]+)(\\/.+)?$/;\n\nexport class Router extends Disposable {\n userSession: UserSession;\n\n routes: Route[] = [];\n\n constructor(userSession: UserSession) {\n super();\n\n this.userSession = userSession;\n }\n\n setRoutes(routes: Route[]) {\n this.routes = routes;\n }\n\n init() {\n const vueRouter = this.userSession.vueRouter;\n const vueRoutes = vueRouter.getRoutes();\n\n // 给有权限访问的页面,注册默认页面\n const defaultPageRoutes = this.routes.filter(\n (route) => !vueRoutes.find((item) => item.name === route.name)\n );\n\n for (const defaultPageRoute of defaultPageRoutes) {\n const match = defaultPageRoute.name.match(NORMALIZE_ROUTE_NAME_REG);\n\n if (match) {\n const name = match[1];\n const action = match[2];\n\n switch (action) {\n case \"single\":\n const [listType, type] = match[3].slice(1).split(\"/\");\n\n switch (listType) {\n case \"list\":\n switch (type) {\n case \"normal\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/normal.vue\"\n ),\n meta: { name },\n });\n break;\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/list/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n\n break;\n case \"tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n break;\n case \"table-tree\":\n switch (type) {\n case \"dialog\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () =>\n import(\n \"../page/index/dv/default/single/table-tree/dialog.vue\"\n ),\n meta: { name },\n });\n break;\n }\n }\n\n break;\n case \"list\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}`,\n component: () => import(\"../page/index/dv/default/table.vue\"),\n meta: { name },\n });\n break;\n case \"edit\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/:id`,\n component: () => import(\"../page/index/dv/default/edit.vue\"),\n meta: { name },\n });\n break;\n case \"add\":\n vueRouter.addRoute(\"mk-ms-layout\", {\n name: defaultPageRoute.name,\n path: `/dv/${name}/add`,\n component: () => import(\"../page/index/dv/default/add.vue\"),\n meta: { name },\n });\n break;\n }\n }\n }\n\n this.register(\n createDisposable(() => {\n for (const defaultPageRoute of defaultPageRoutes) {\n vueRouter.removeRoute(defaultPageRoute.name);\n }\n })\n );\n }\n\n getRouteByName(name: string): Route | null {\n return this.routes.find((route) => route.name === name) ?? null;\n }\n\n getRouteByID(id: string): Route | null {\n return this.routes.find((route) => route.id === id) ?? null;\n }\n\n getRoutesByMenuID(menuId: Route[\"menuId\"]): Route[] {\n return this.routes.filter((route) => route.menuId === menuId);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -86,18 +86,6 @@ class UserSession extends Disposable {
|
|
|
86
86
|
this.tabs.init();
|
|
87
87
|
this.beforeInitRouterEvent.emit();
|
|
88
88
|
this.router.init();
|
|
89
|
-
this.router.routeChange.on(({ route, routeInfo }) => {
|
|
90
|
-
const menuNode = this.menu.findMenuNodeByID(routeInfo.menuId);
|
|
91
|
-
this.menu.setCurrentMenuNode(menuNode);
|
|
92
|
-
const tab = this.tabs.findTabByID(routeInfo.name) ?? this.tabs.createTab({
|
|
93
|
-
id: routeInfo.name,
|
|
94
|
-
title: routeInfo.title,
|
|
95
|
-
affix: route.matched?.[route.matched?.length - 1]?.meta?.affix,
|
|
96
|
-
realRoute: route,
|
|
97
|
-
route: routeInfo
|
|
98
|
-
});
|
|
99
|
-
this.tabs.switchTab(tab);
|
|
100
|
-
});
|
|
101
89
|
return response;
|
|
102
90
|
} catch (e) {
|
|
103
91
|
httpRequest.getInterceptors().request.eject(beforeRequestInterceptorID);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSession.js","sources":["../../../src/core/UserSession.ts"],"sourcesContent":["import { Disposable, Event, createDisposable, md5 } from \"@maketribe/utils\";\nimport { MemberInfo, UserInfo } from \"./UserInfo\";\nimport { Menu } from \"./menu\";\nimport { Tabs } from \"./tabs\";\nimport { Router } from \"./Router\";\nimport {\n PermissionPoint,\n PermissionPointManager,\n} from \"./PermissionPointManager\";\nimport type { MSAppClient, LoginResult } from \"./MSAppClient\";\nimport { MenuResult, Role, Route } from \"../dataview\";\nimport { R } from \"@maketribe/request\";\nimport {\n ACCESS_TOKEN_HEADER,\n AUTHORIZATION,\n AUTHORIZATION_PREFIX,\n X_ACCESS_TOKEN_HEADER,\n X_AUTHORIZATION,\n} from \"../constants\";\n\nexport type UserSessionOptions = {\n msAppClient: MSAppClient;\n accessToken?: string;\n xAccessToken?: string;\n};\n\nlet uid = 0;\n\nexport class UserSession extends Disposable {\n id = uid++;\n\n msAppClient: MSAppClient;\n\n vueRouter: MSAppClient[\"vueRouter\"];\n\n userInfo: UserInfo | null;\n\n menu: Menu;\n\n tabs: Tabs;\n\n router: Router;\n\n permissionPointManager: PermissionPointManager;\n\n accessToken: string;\n\n xAccessToken: string;\n\n beforeInitRouterEvent: Event = this.register(new Event());\n\n locking: boolean = false;\n\n lockingChangeEvent: Event<{ locking: boolean }> = this.register(new Event());\n\n constructor(options: UserSessionOptions) {\n super();\n\n this.msAppClient = options.msAppClient;\n\n this.vueRouter = this.msAppClient.vueRouter;\n\n this.userInfo = null;\n\n this.router = this.register(new Router(this));\n this.tabs = this.register(new Tabs(this));\n this.permissionPointManager = new PermissionPointManager();\n this.menu = this.register(\n new Menu(this.permissionPointManager, this.router)\n );\n\n this.accessToken =\n options.accessToken ?? localStorage.getItem(ACCESS_TOKEN_HEADER) ?? \"\";\n this.xAccessToken =\n options.xAccessToken ?? localStorage.getItem(X_ACCESS_TOKEN_HEADER) ?? \"\";\n }\n\n async init() {\n type BasicInfoResult = {\n member: MemberInfo;\n menus: MenuResult[];\n routes: Route[];\n roles: Role[];\n permissionPoints: PermissionPoint[];\n };\n\n const msAppClient = this.msAppClient;\n\n const httpRequest = msAppClient.httpRequest;\n\n const beforeRequestInterceptorID = httpRequest\n .getInterceptors()\n .request.use((config) => {\n if (this.accessToken) {\n config.headers[\n AUTHORIZATION\n ] = `${AUTHORIZATION_PREFIX} ${this.accessToken}`;\n }\n\n if (this.xAccessToken) {\n config.headers[\n X_AUTHORIZATION\n ] = `${AUTHORIZATION_PREFIX} ${this.xAccessToken}`;\n }\n\n return config;\n });\n\n const beforeResponseInterceptorID = httpRequest\n .getInterceptors()\n .response.use((config) => {\n if (config.data.code === 401) {\n this.accessToken = this.xAccessToken = \"\";\n } else {\n this.accessToken =\n config.headers[ACCESS_TOKEN_HEADER] || this.accessToken;\n\n this.xAccessToken =\n config.headers[X_ACCESS_TOKEN_HEADER] || this.xAccessToken;\n }\n\n localStorage.setItem(ACCESS_TOKEN_HEADER, this.accessToken);\n\n localStorage.setItem(X_ACCESS_TOKEN_HEADER, this.xAccessToken);\n\n return config;\n });\n\n this.register(\n createDisposable(() => {\n httpRequest.getInterceptors().request.eject(beforeRequestInterceptorID);\n httpRequest\n .getInterceptors()\n .request.eject(beforeResponseInterceptorID);\n })\n );\n\n try {\n let response = await httpRequest.request<R<BasicInfoResult>>({\n url: \"/api/ms-login/login-info\",\n method: \"GET\",\n });\n\n if (!response.data || response.data.code !== 200) {\n return response;\n }\n\n const BasicInfoResult = response.data!;\n\n const { member, routes, menus, permissionPoints, roles } =\n BasicInfoResult.data!;\n\n this.userInfo = new UserInfo(\n msAppClient,\n member,\n roles,\n permissionPoints\n );\n\n this.router.setRoutes(routes);\n this.permissionPointManager.setPermissionPoints(permissionPoints);\n this.menu.setMenus(menus);\n\n this.tabs.init();\n\n this.beforeInitRouterEvent.emit();\n this.router.init();\n\n this.router.routeChange.on(({ route, routeInfo }) => {\n const menuNode = this.menu.findMenuNodeByID(routeInfo.menuId);\n\n this.menu.setCurrentMenuNode(menuNode);\n\n const tab =\n this.tabs.findTabByID(routeInfo.name) ??\n this.tabs.createTab({\n id: routeInfo.name,\n title: routeInfo.title,\n affix: route.matched?.[route.matched?.length - 1]?.meta?.affix,\n realRoute: route,\n route: routeInfo,\n });\n\n this.tabs.switchTab(tab);\n });\n\n return response;\n } catch (e) {\n httpRequest.getInterceptors().request.eject(beforeRequestInterceptorID);\n httpRequest.getInterceptors().request.eject(beforeResponseInterceptorID);\n }\n }\n\n lock() {\n this.locking = true;\n\n this.lockingChangeEvent.emit({ locking: this.locking });\n }\n\n async unlock(password: string, code: string) {\n const response = await this.msAppClient.httpRequest.request<R<LoginResult>>(\n {\n url: \"/api/ms-login/login\",\n method: \"POST\",\n data: {\n account: this.userInfo!.account,\n password: md5(`mkbl#${password}`),\n vCode: code,\n },\n }\n );\n\n if (response.data.code !== 200) {\n return response;\n }\n\n this.accessToken = response.headers[ACCESS_TOKEN_HEADER];\n this.xAccessToken = response.headers[X_ACCESS_TOKEN_HEADER];\n\n this.locking = false;\n\n this.lockingChangeEvent.emit({ locking: this.locking });\n\n return response;\n }\n\n public dispose(): void {\n localStorage.removeItem(ACCESS_TOKEN_HEADER);\n localStorage.removeItem(X_ACCESS_TOKEN_HEADER);\n\n super.dispose();\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserSession.js","sources":["../../../src/core/UserSession.ts"],"sourcesContent":["import { Disposable, Event, createDisposable, md5 } from \"@maketribe/utils\";\nimport { MemberInfo, UserInfo } from \"./UserInfo\";\nimport { Menu } from \"./menu\";\nimport { Tabs } from \"./tabs\";\nimport { Router } from \"./Router\";\nimport {\n PermissionPoint,\n PermissionPointManager,\n} from \"./PermissionPointManager\";\nimport type { MSAppClient, LoginResult } from \"./MSAppClient\";\nimport { MenuResult, Role, Route } from \"../dataview\";\nimport { R } from \"@maketribe/request\";\nimport {\n ACCESS_TOKEN_HEADER,\n AUTHORIZATION,\n AUTHORIZATION_PREFIX,\n X_ACCESS_TOKEN_HEADER,\n X_AUTHORIZATION,\n} from \"../constants\";\n\nexport type UserSessionOptions = {\n msAppClient: MSAppClient;\n accessToken?: string;\n xAccessToken?: string;\n};\n\nlet uid = 0;\n\nexport class UserSession extends Disposable {\n id = uid++;\n\n msAppClient: MSAppClient;\n\n vueRouter: MSAppClient[\"vueRouter\"];\n\n userInfo: UserInfo | null;\n\n menu: Menu;\n\n tabs: Tabs;\n\n router: Router;\n\n permissionPointManager: PermissionPointManager;\n\n accessToken: string;\n\n xAccessToken: string;\n\n beforeInitRouterEvent: Event = this.register(new Event());\n\n locking: boolean = false;\n\n lockingChangeEvent: Event<{ locking: boolean }> = this.register(new Event());\n\n constructor(options: UserSessionOptions) {\n super();\n\n this.msAppClient = options.msAppClient;\n\n this.vueRouter = this.msAppClient.vueRouter;\n\n this.userInfo = null;\n\n this.router = this.register(new Router(this));\n this.tabs = this.register(new Tabs(this));\n this.permissionPointManager = new PermissionPointManager();\n this.menu = this.register(\n new Menu(this.permissionPointManager, this.router)\n );\n\n this.accessToken =\n options.accessToken ?? localStorage.getItem(ACCESS_TOKEN_HEADER) ?? \"\";\n this.xAccessToken =\n options.xAccessToken ?? localStorage.getItem(X_ACCESS_TOKEN_HEADER) ?? \"\";\n }\n\n async init() {\n type BasicInfoResult = {\n member: MemberInfo;\n menus: MenuResult[];\n routes: Route[];\n roles: Role[];\n permissionPoints: PermissionPoint[];\n };\n\n const msAppClient = this.msAppClient;\n\n const httpRequest = msAppClient.httpRequest;\n\n const beforeRequestInterceptorID = httpRequest\n .getInterceptors()\n .request.use((config) => {\n if (this.accessToken) {\n config.headers[\n AUTHORIZATION\n ] = `${AUTHORIZATION_PREFIX} ${this.accessToken}`;\n }\n\n if (this.xAccessToken) {\n config.headers[\n X_AUTHORIZATION\n ] = `${AUTHORIZATION_PREFIX} ${this.xAccessToken}`;\n }\n\n return config;\n });\n\n const beforeResponseInterceptorID = httpRequest\n .getInterceptors()\n .response.use((config) => {\n if (config.data.code === 401) {\n this.accessToken = this.xAccessToken = \"\";\n } else {\n this.accessToken =\n config.headers[ACCESS_TOKEN_HEADER] || this.accessToken;\n\n this.xAccessToken =\n config.headers[X_ACCESS_TOKEN_HEADER] || this.xAccessToken;\n }\n\n localStorage.setItem(ACCESS_TOKEN_HEADER, this.accessToken);\n\n localStorage.setItem(X_ACCESS_TOKEN_HEADER, this.xAccessToken);\n\n return config;\n });\n\n this.register(\n createDisposable(() => {\n httpRequest.getInterceptors().request.eject(beforeRequestInterceptorID);\n httpRequest\n .getInterceptors()\n .request.eject(beforeResponseInterceptorID);\n })\n );\n\n try {\n let response = await httpRequest.request<R<BasicInfoResult>>({\n url: \"/api/ms-login/login-info\",\n method: \"GET\",\n });\n\n if (!response.data || response.data.code !== 200) {\n return response;\n }\n\n const BasicInfoResult = response.data!;\n\n const { member, routes, menus, permissionPoints, roles } =\n BasicInfoResult.data!;\n\n this.userInfo = new UserInfo(\n msAppClient,\n member,\n roles,\n permissionPoints\n );\n\n this.router.setRoutes(routes);\n this.permissionPointManager.setPermissionPoints(permissionPoints);\n this.menu.setMenus(menus);\n\n this.tabs.init();\n\n this.beforeInitRouterEvent.emit();\n this.router.init();\n\n return response;\n } catch (e) {\n httpRequest.getInterceptors().request.eject(beforeRequestInterceptorID);\n httpRequest.getInterceptors().request.eject(beforeResponseInterceptorID);\n }\n }\n\n lock() {\n this.locking = true;\n\n this.lockingChangeEvent.emit({ locking: this.locking });\n }\n\n async unlock(password: string, code: string) {\n const response = await this.msAppClient.httpRequest.request<R<LoginResult>>(\n {\n url: \"/api/ms-login/login\",\n method: \"POST\",\n data: {\n account: this.userInfo!.account,\n password: md5(`mkbl#${password}`),\n vCode: code,\n },\n }\n );\n\n if (response.data.code !== 200) {\n return response;\n }\n\n this.accessToken = response.headers[ACCESS_TOKEN_HEADER];\n this.xAccessToken = response.headers[X_ACCESS_TOKEN_HEADER];\n\n this.locking = false;\n\n this.lockingChangeEvent.emit({ locking: this.locking });\n\n return response;\n }\n\n public dispose(): void {\n localStorage.removeItem(ACCESS_TOKEN_HEADER);\n localStorage.removeItem(X_ACCESS_TOKEN_HEADER);\n\n super.dispose();\n }\n}\n"],"names":[],"mappings":";;;;;;;;AA0BA,IAAI,GAAM,GAAA,CAAA,CAAA;AAEH,MAAM,oBAAoB,UAAW,CAAA;AAAA,EAC1C,EAAK,GAAA,GAAA,EAAA,CAAA;AAAA,EAEL,WAAA,CAAA;AAAA,EAEA,SAAA,CAAA;AAAA,EAEA,QAAA,CAAA;AAAA,EAEA,IAAA,CAAA;AAAA,EAEA,IAAA,CAAA;AAAA,EAEA,MAAA,CAAA;AAAA,EAEA,sBAAA,CAAA;AAAA,EAEA,WAAA,CAAA;AAAA,EAEA,YAAA,CAAA;AAAA,EAEA,qBAA+B,GAAA,IAAA,CAAK,QAAS,CAAA,IAAI,OAAO,CAAA,CAAA;AAAA,EAExD,OAAmB,GAAA,KAAA,CAAA;AAAA,EAEnB,kBAAkD,GAAA,IAAA,CAAK,QAAS,CAAA,IAAI,OAAO,CAAA,CAAA;AAAA,EAE3E,YAAY,OAA6B,EAAA;AACvC,IAAM,KAAA,EAAA,CAAA;AAEN,IAAA,IAAA,CAAK,cAAc,OAAQ,CAAA,WAAA,CAAA;AAE3B,IAAK,IAAA,CAAA,SAAA,GAAY,KAAK,WAAY,CAAA,SAAA,CAAA;AAElC,IAAA,IAAA,CAAK,QAAW,GAAA,IAAA,CAAA;AAEhB,IAAA,IAAA,CAAK,SAAS,IAAK,CAAA,QAAA,CAAS,IAAI,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA;AAC5C,IAAA,IAAA,CAAK,OAAO,IAAK,CAAA,QAAA,CAAS,IAAI,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AACxC,IAAK,IAAA,CAAA,sBAAA,GAAyB,IAAI,sBAAuB,EAAA,CAAA;AACzD,IAAA,IAAA,CAAK,OAAO,IAAK,CAAA,QAAA;AAAA,MACf,IAAI,IAAA,CAAK,IAAK,CAAA,sBAAA,EAAwB,KAAK,MAAM,CAAA;AAAA,KACnD,CAAA;AAEA,IAAA,IAAA,CAAK,cACH,OAAQ,CAAA,WAAA,IAAe,YAAa,CAAA,OAAA,CAAQ,mBAAmB,CAAK,IAAA,EAAA,CAAA;AACtE,IAAA,IAAA,CAAK,eACH,OAAQ,CAAA,YAAA,IAAgB,YAAa,CAAA,OAAA,CAAQ,qBAAqB,CAAK,IAAA,EAAA,CAAA;AAAA,GAC3E;AAAA,EAEA,MAAM,IAAO,GAAA;AASX,IAAA,MAAM,cAAc,IAAK,CAAA,WAAA,CAAA;AAEzB,IAAA,MAAM,cAAc,WAAY,CAAA,WAAA,CAAA;AAEhC,IAAA,MAAM,6BAA6B,WAChC,CAAA,eAAA,GACA,OAAQ,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACvB,MAAA,IAAI,KAAK,WAAa,EAAA;AACpB,QAAA,MAAA,CAAO,QACL,aACF,CAAA,GAAI,GAAG,oBAAoB,CAAA,CAAA,EAAI,KAAK,WAAW,CAAA,CAAA,CAAA;AAAA,OACjD;AAEA,MAAA,IAAI,KAAK,YAAc,EAAA;AACrB,QAAA,MAAA,CAAO,QACL,eACF,CAAA,GAAI,GAAG,oBAAoB,CAAA,CAAA,EAAI,KAAK,YAAY,CAAA,CAAA,CAAA;AAAA,OAClD;AAEA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAEH,IAAA,MAAM,8BAA8B,WACjC,CAAA,eAAA,GACA,QAAS,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACxB,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC5B,QAAK,IAAA,CAAA,WAAA,GAAc,KAAK,YAAe,GAAA,EAAA,CAAA;AAAA,OAClC,MAAA;AACL,QAAA,IAAA,CAAK,WACH,GAAA,MAAA,CAAO,OAAQ,CAAA,mBAAmB,KAAK,IAAK,CAAA,WAAA,CAAA;AAE9C,QAAA,IAAA,CAAK,YACH,GAAA,MAAA,CAAO,OAAQ,CAAA,qBAAqB,KAAK,IAAK,CAAA,YAAA,CAAA;AAAA,OAClD;AAEA,MAAa,YAAA,CAAA,OAAA,CAAQ,mBAAqB,EAAA,IAAA,CAAK,WAAW,CAAA,CAAA;AAE1D,MAAa,YAAA,CAAA,OAAA,CAAQ,qBAAuB,EAAA,IAAA,CAAK,YAAY,CAAA,CAAA;AAE7D,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAEH,IAAK,IAAA,CAAA,QAAA;AAAA,MACH,iBAAiB,MAAM;AACrB,QAAA,WAAA,CAAY,eAAgB,EAAA,CAAE,OAAQ,CAAA,KAAA,CAAM,0BAA0B,CAAA,CAAA;AACtE,QAAA,WAAA,CACG,eAAgB,EAAA,CAChB,OAAQ,CAAA,KAAA,CAAM,2BAA2B,CAAA,CAAA;AAAA,OAC7C,CAAA;AAAA,KACH,CAAA;AAEA,IAAI,IAAA;AACF,MAAI,IAAA,QAAA,GAAW,MAAM,WAAA,CAAY,OAA4B,CAAA;AAAA,QAC3D,GAAK,EAAA,0BAAA;AAAA,QACL,MAAQ,EAAA,KAAA;AAAA,OACT,CAAA,CAAA;AAED,MAAA,IAAI,CAAC,QAAS,CAAA,IAAA,IAAQ,QAAS,CAAA,IAAA,CAAK,SAAS,GAAK,EAAA;AAChD,QAAO,OAAA,QAAA,CAAA;AAAA,OACT;AAEA,MAAA,MAAM,kBAAkB,QAAS,CAAA,IAAA,CAAA;AAEjC,MAAA,MAAM,EAAE,MAAQ,EAAA,MAAA,EAAQ,OAAO,gBAAkB,EAAA,KAAA,KAC/C,eAAgB,CAAA,IAAA,CAAA;AAElB,MAAA,IAAA,CAAK,WAAW,IAAI,QAAA;AAAA,QAClB,WAAA;AAAA,QACA,MAAA;AAAA,QACA,KAAA;AAAA,QACA,gBAAA;AAAA,OACF,CAAA;AAEA,MAAK,IAAA,CAAA,MAAA,CAAO,UAAU,MAAM,CAAA,CAAA;AAC5B,MAAK,IAAA,CAAA,sBAAA,CAAuB,oBAAoB,gBAAgB,CAAA,CAAA;AAChE,MAAK,IAAA,CAAA,IAAA,CAAK,SAAS,KAAK,CAAA,CAAA;AAExB,MAAA,IAAA,CAAK,KAAK,IAAK,EAAA,CAAA;AAEf,MAAA,IAAA,CAAK,sBAAsB,IAAK,EAAA,CAAA;AAChC,MAAA,IAAA,CAAK,OAAO,IAAK,EAAA,CAAA;AAEjB,MAAO,OAAA,QAAA,CAAA;AAAA,aACA,CAAG,EAAA;AACV,MAAA,WAAA,CAAY,eAAgB,EAAA,CAAE,OAAQ,CAAA,KAAA,CAAM,0BAA0B,CAAA,CAAA;AACtE,MAAA,WAAA,CAAY,eAAgB,EAAA,CAAE,OAAQ,CAAA,KAAA,CAAM,2BAA2B,CAAA,CAAA;AAAA,KACzE;AAAA,GACF;AAAA,EAEA,IAAO,GAAA;AACL,IAAA,IAAA,CAAK,OAAU,GAAA,IAAA,CAAA;AAEf,IAAA,IAAA,CAAK,mBAAmB,IAAK,CAAA,EAAE,OAAS,EAAA,IAAA,CAAK,SAAS,CAAA,CAAA;AAAA,GACxD;AAAA,EAEA,MAAM,MAAO,CAAA,QAAA,EAAkB,IAAc,EAAA;AAC3C,IAAA,MAAM,QAAW,GAAA,MAAM,IAAK,CAAA,WAAA,CAAY,WAAY,CAAA,OAAA;AAAA,MAClD;AAAA,QACE,GAAK,EAAA,qBAAA;AAAA,QACL,MAAQ,EAAA,MAAA;AAAA,QACR,IAAM,EAAA;AAAA,UACJ,OAAA,EAAS,KAAK,QAAU,CAAA,OAAA;AAAA,UACxB,QAAU,EAAA,GAAA,CAAI,CAAQ,KAAA,EAAA,QAAQ,CAAE,CAAA,CAAA;AAAA,UAChC,KAAO,EAAA,IAAA;AAAA,SACT;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAI,IAAA,QAAA,CAAS,IAAK,CAAA,IAAA,KAAS,GAAK,EAAA;AAC9B,MAAO,OAAA,QAAA,CAAA;AAAA,KACT;AAEA,IAAK,IAAA,CAAA,WAAA,GAAc,QAAS,CAAA,OAAA,CAAQ,mBAAmB,CAAA,CAAA;AACvD,IAAK,IAAA,CAAA,YAAA,GAAe,QAAS,CAAA,OAAA,CAAQ,qBAAqB,CAAA,CAAA;AAE1D,IAAA,IAAA,CAAK,OAAU,GAAA,KAAA,CAAA;AAEf,IAAA,IAAA,CAAK,mBAAmB,IAAK,CAAA,EAAE,OAAS,EAAA,IAAA,CAAK,SAAS,CAAA,CAAA;AAEtD,IAAO,OAAA,QAAA,CAAA;AAAA,GACT;AAAA,EAEO,OAAgB,GAAA;AACrB,IAAA,YAAA,CAAa,WAAW,mBAAmB,CAAA,CAAA;AAC3C,IAAA,YAAA,CAAa,WAAW,qBAAqB,CAAA,CAAA;AAE7C,IAAA,KAAA,CAAM,OAAQ,EAAA,CAAA;AAAA,GAChB;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sources":["../../../../src/core/tabs/Tabs.ts"],"sourcesContent":["import { Disposable, Event } from \"@maketribe/utils\";\nimport { Tab, TabOptions } from \"./Tab\";\nimport type { UserSession } from \"../UserSession\";\n\nexport class Tabs extends Disposable {\n userSession: UserSession;\n\n _tabs: Tab[] = [];\n _currentTab: Tab | null = null;\n\n currentTabChangeEvent: Event<{ currentTab: Tab | null }> = this.register(\n new Event()\n );\n tabsChangeEvent: Event<{ tabs: Tab[] }> = this.register(new Event());\n\n constructor(userSession: UserSession) {\n super();\n this.userSession = userSession;\n }\n\n init() {\n const getAffixRoutes = () => {\n let routes = this.userSession.vueRouter.getRoutes().slice();\n\n const affixRoutes: any[] = [];\n\n for (let i = 0; i < routes.length; i++) {\n const route = routes[i];\n\n if (route.meta?.affix === true) {\n affixRoutes.push(route);\n }\n }\n\n return affixRoutes;\n };\n\n const getAffixTabs = () => {\n return getAffixRoutes()\n .map((affixRoute) => {\n const route = this.userSession.router.getRouteByName(\n affixRoute.name as string\n );\n\n if (!route) {\n return null;\n }\n\n return this.createTab({\n id: affixRoute.path,\n title: route.title,\n affix: true,\n route: route,\n realRoute: affixRoute,\n });\n })\n .filter(Boolean) as Tab[];\n };\n\n this.setTabs(getAffixTabs());\n }\n\n getTabs() {\n return this._tabs;\n }\n\n getCurrentTab() {\n return this._currentTab;\n }\n\n setCurrentTab(tab: Tab | null) {\n if (this._currentTab === tab) {\n return;\n }\n\n this._currentTab = tab;\n\n this.currentTabChangeEvent.emit({ currentTab: tab });\n }\n\n getTabByID(id: string) {\n return this._tabs.find((tab) => tab.id === id) ?? null;\n }\n\n createTab(options: Omit<TabOptions, \"tabs\">) {\n return this.register(new Tab({ ...options, tabs: this }));\n }\n\n setTabs(tabs: Tab[]): void {\n this._tabs = tabs;\n\n this.tabsChangeEvent.emit({ tabs });\n }\n\n switchTab(tab: Tab | null) {\n // TODO 暂时用不到Tab\n \n this.setCurrentTab(tab);\n return;\n\n // if (!tab) {\n // this.setCurrentTab(null);\n // return;\n // }\n\n // let _tab = this._tabs.find((item) => item.getID() === tab.getID());\n\n // if (!_tab) {\n // this.setTabs([...this.getTabs(), tab]);\n // }\n\n // this.setCurrentTab(tab);\n }\n\n findTabByID(id: Tab[\"id\"]) {\n return this.getTabs().find((tab) => tab.id === id) ?? null;\n }\n\n async closeTab(tab: Tab) {\n if ((await tab.beforeCloseEvent.emitAsync()) === false) {\n return;\n }\n\n const tabItemList = this.getTabs().slice();\n\n if (this.getCurrentTab()?.getID() !== tab.getID()) {\n this.setTabs(tabItemList.filter((item) => item.getID() !== tab.getID()));\n\n return;\n }\n\n const index = tabItemList.findIndex((item) => item.getID() === tab.getID());\n\n if (index === -1) {\n return;\n }\n\n const deleteTab = tabItemList[index];\n deleteTab.dispose();\n\n tabItemList.splice(index, 1);\n this.setTabs(tabItemList);\n\n this.setCurrentTab(this._tabs[this._tabs.length - 1] ?? null);\n }\n\n closeAll() {\n const affixTabs = this.getTabs().filter((tab) => tab.affix);\n\n if (affixTabs.length) {\n this.setTabs(affixTabs);\n this.setCurrentTab(affixTabs[0]);\n return;\n }\n\n this.setTabs([this.getCurrentTab() ?? this.getTabs()[0]]);\n this.setCurrentTab(this.getTabs()[0]);\n }\n\n closeOther() {\n const currentTab = this.getCurrentTab();\n\n if (!currentTab) {\n return;\n }\n\n const affixTabs = this.getTabs().filter((tab) => tab.affix);\n\n if (affixTabs.length) {\n if (affixTabs.find((item) => item.getID() === currentTab.getID())) {\n this.setTabs(affixTabs);\n } else {\n this.setTabs([...affixTabs, currentTab]);\n }\n\n return;\n }\n\n this.setTabs([currentTab]);\n }\n}\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../../../src/core/tabs/Tabs.ts"],"sourcesContent":["import { Disposable, Event } from \"@maketribe/utils\";\nimport { Tab, TabOptions } from \"./Tab\";\nimport type { UserSession } from \"../UserSession\";\n\nexport class Tabs extends Disposable {\n userSession: UserSession;\n\n _tabs: Tab[] = [];\n _currentTab: Tab | null = null;\n\n currentTabChangeEvent: Event<{ currentTab: Tab | null }> = this.register(\n new Event()\n );\n tabsChangeEvent: Event<{ tabs: Tab[] }> = this.register(new Event());\n\n constructor(userSession: UserSession) {\n super();\n this.userSession = userSession;\n }\n\n init() {\n const getAffixRoutes = () => {\n let routes = this.userSession.vueRouter.getRoutes().slice();\n\n const affixRoutes: any[] = [];\n\n for (let i = 0; i < routes.length; i++) {\n const route = routes[i];\n\n if (route.meta?.affix === true) {\n affixRoutes.push(route);\n }\n }\n\n return affixRoutes;\n };\n\n const getAffixTabs = () => {\n return getAffixRoutes()\n .map((affixRoute) => {\n const route = this.userSession.router.getRouteByName(\n affixRoute.name as string\n );\n\n if (!route) {\n return null;\n }\n\n return this.createTab({\n id: affixRoute.path,\n title: route.title,\n affix: true,\n route: route,\n realRoute: affixRoute,\n });\n })\n .filter(Boolean) as Tab[];\n };\n\n this.setTabs(getAffixTabs());\n }\n\n getTabs() {\n return this._tabs;\n }\n\n getCurrentTab() {\n return this._currentTab;\n }\n\n setCurrentTab(tab: Tab | null) {\n if (this._currentTab === tab) {\n return;\n }\n\n this._currentTab = tab;\n\n this.currentTabChangeEvent.emit({ currentTab: tab });\n }\n\n getTabByID(id: string) {\n return this._tabs.find((tab) => tab.id === id) ?? null;\n }\n\n createTab(options: Omit<TabOptions, \"tabs\">) {\n return this.register(new Tab({ ...options, tabs: this }));\n }\n\n setTabs(tabs: Tab[]): void {\n this._tabs = tabs;\n\n this.tabsChangeEvent.emit({ tabs });\n }\n\n switchTab(tab: Tab | null) {\n // TODO 暂时用不到Tab\n\n // if (\n // this.getCurrentTab()?.realRoute?.fullPath === tab?.realRoute?.fullPath\n // ) {\n // return;\n // }\n\n this.setCurrentTab(tab);\n return;\n\n // if (!tab) {\n // this.setCurrentTab(null);\n // return;\n // }\n\n // let _tab = this._tabs.find((item) => item.getID() === tab.getID());\n\n // if (!_tab) {\n // this.setTabs([...this.getTabs(), tab]);\n // }\n\n // this.setCurrentTab(tab);\n }\n\n findTabByID(id: Tab[\"id\"]) {\n return this.getTabs().find((tab) => tab.id === id) ?? null;\n }\n\n async closeTab(tab: Tab) {\n if ((await tab.beforeCloseEvent.emitAsync()) === false) {\n return;\n }\n\n const tabItemList = this.getTabs().slice();\n\n if (this.getCurrentTab()?.getID() !== tab.getID()) {\n this.setTabs(tabItemList.filter((item) => item.getID() !== tab.getID()));\n\n return;\n }\n\n const index = tabItemList.findIndex((item) => item.getID() === tab.getID());\n\n if (index === -1) {\n return;\n }\n\n const deleteTab = tabItemList[index];\n deleteTab.dispose();\n\n tabItemList.splice(index, 1);\n this.setTabs(tabItemList);\n\n this.setCurrentTab(this._tabs[this._tabs.length - 1] ?? null);\n }\n\n closeAll() {\n const affixTabs = this.getTabs().filter((tab) => tab.affix);\n\n if (affixTabs.length) {\n this.setTabs(affixTabs);\n this.setCurrentTab(affixTabs[0]);\n return;\n }\n\n this.setTabs([this.getCurrentTab() ?? this.getTabs()[0]]);\n this.setCurrentTab(this.getTabs()[0]);\n }\n\n closeOther() {\n const currentTab = this.getCurrentTab();\n\n if (!currentTab) {\n return;\n }\n\n const affixTabs = this.getTabs().filter((tab) => tab.affix);\n\n if (affixTabs.length) {\n if (affixTabs.find((item) => item.getID() === currentTab.getID())) {\n this.setTabs(affixTabs);\n } else {\n this.setTabs([...affixTabs, currentTab]);\n }\n\n return;\n }\n\n this.setTabs([currentTab]);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { DataTable, DataTableOptions } from "@maketribe/dm";
|
|
2
|
-
import { Event } from "@maketribe/utils";
|
|
3
2
|
import { Member, MemberForm, MemberResult } from "./MemberForm";
|
|
4
3
|
export type MemberTableItem = Omit<Member, "password" | "confirmPassword">;
|
|
5
4
|
export declare class MemberTable extends DataTable<MemberResult, MemberTableItem> {
|
|
6
5
|
activeMemberForm: MemberForm;
|
|
7
|
-
|
|
6
|
+
isShowActiveMemberForm: boolean;
|
|
8
7
|
constructor(options?: DataTableOptions);
|
|
9
8
|
protected initialize(): Promise<void>;
|
|
10
9
|
protected initActiveMemberForm(): Promise<void>;
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import { createVNode, createTextVNode } from 'vue';
|
|
2
|
-
import { DataTable, FilterColumn, TableColumn, TableActionColumn, ActionButton,
|
|
3
|
-
import { Event } from '@maketribe/utils';
|
|
2
|
+
import { DataTable, FilterColumn, TableColumn, TableActionColumn, ActionButton, Messager, Dialoger, EditButton, DeleteButton, FormColumn } from '@maketribe/dm';
|
|
4
3
|
import { defineDataTable } from '../../define-data-table.js';
|
|
5
4
|
import { MemberForm } from './MemberForm.js';
|
|
6
|
-
import 'element-plus';
|
|
7
|
-
import '../../core/DataModelDefines.js';
|
|
8
|
-
import { MSAppClient } from '../../core/MSAppClient.js';
|
|
9
5
|
|
|
10
6
|
class MemberTable extends DataTable {
|
|
11
|
-
activeMemberEvent = this.register(new Event());
|
|
12
7
|
constructor(options = {}) {
|
|
13
8
|
super({
|
|
14
9
|
name: "ms-member",
|
|
15
10
|
...options
|
|
16
11
|
});
|
|
17
12
|
this.activeMemberForm = new MemberForm();
|
|
13
|
+
this.isShowActiveMemberForm = false;
|
|
18
14
|
}
|
|
19
15
|
async initialize() {
|
|
20
16
|
await super.initialize();
|
|
@@ -86,19 +82,16 @@ class MemberTable extends DataTable {
|
|
|
86
82
|
}), new TableActionColumn({
|
|
87
83
|
width: "200px",
|
|
88
84
|
buttons: [new ActionButton({
|
|
89
|
-
label: "test",
|
|
90
|
-
handler: () => {
|
|
91
|
-
MSAppClient.instance.vueRouter.push({
|
|
92
|
-
name: "dv/ms-role/single/list/dialog",
|
|
93
|
-
query: {
|
|
94
|
-
id: "8"
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}), new ActionButton({
|
|
99
85
|
label: "\u6FC0\u6D3B\u7528\u6237",
|
|
100
86
|
handler: async (row) => {
|
|
101
|
-
this.
|
|
87
|
+
const response = await this.activeMemberForm.editRecord(row.id);
|
|
88
|
+
if (response.data.code !== 200) {
|
|
89
|
+
Messager.instance.error({
|
|
90
|
+
message: response.data.msg
|
|
91
|
+
});
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
this.isShowActiveMemberForm = true;
|
|
102
95
|
},
|
|
103
96
|
predicate: (member) => member.valid === 0
|
|
104
97
|
}), new ActionButton({
|