@maketribe/ms-app 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/cjs/MSAppClient.js +12 -18
  2. package/dist/cjs/MSAppClient.js.map +1 -1
  3. package/dist/cjs/Router.js +6 -8
  4. package/dist/cjs/Router.js.map +1 -1
  5. package/dist/cjs/components/member-table/member-table.vue2.js +2 -10
  6. package/dist/cjs/components/member-table/member-table.vue2.js.map +1 -1
  7. package/dist/cjs/components/verify-dialog/verify-dialog.js +1 -24
  8. package/dist/cjs/components/verify-dialog/verify-dialog.js.map +1 -1
  9. package/dist/cjs/init-application.js +8 -1
  10. package/dist/cjs/init-application.js.map +1 -1
  11. package/dist/cjs/page/index/dv/default/add.vue.js +2 -2
  12. package/dist/cjs/page/index/dv/default/edit.vue.js +2 -2
  13. package/dist/cjs/page/index/dv/default/tree.vue.js +2 -2
  14. package/dist/cjs/page/index/dv/ms-member/index.vue.js +2 -2
  15. package/dist/cjs/page/index/dv/ms-role/index.vue.js +2 -2
  16. package/dist/cjs/page/index/material/index.vue.js +2 -2
  17. package/dist/cjs/page/login/index.vue.js +2 -2
  18. package/dist/cjs/page/login/index.vue2.js +2 -17
  19. package/dist/cjs/page/login/index.vue2.js.map +1 -1
  20. package/dist/cjs/page/signup/index.vue.js +2 -2
  21. package/dist/cjs/page/signup/index.vue2.js +2 -18
  22. package/dist/cjs/page/signup/index.vue2.js.map +1 -1
  23. package/dist/cjs/router-middleware/auth.d.ts +2 -1
  24. package/dist/cjs/router-middleware/auth.js +1 -3
  25. package/dist/cjs/router-middleware/auth.js.map +1 -1
  26. package/dist/esm/MSAppClient.js +11 -19
  27. package/dist/esm/MSAppClient.js.map +1 -1
  28. package/dist/esm/Router.js +4 -8
  29. package/dist/esm/Router.js.map +1 -1
  30. package/dist/esm/components/member-table/member-table.vue2.js +2 -10
  31. package/dist/esm/components/member-table/member-table.vue2.js.map +1 -1
  32. package/dist/esm/components/verify-dialog/verify-dialog.js +1 -24
  33. package/dist/esm/components/verify-dialog/verify-dialog.js.map +1 -1
  34. package/dist/esm/init-application.js +8 -1
  35. package/dist/esm/init-application.js.map +1 -1
  36. package/dist/esm/page/index/dv/default/add.vue.js +2 -2
  37. package/dist/esm/page/index/dv/default/edit.vue.js +2 -2
  38. package/dist/esm/page/index/dv/default/tree.vue.js +2 -2
  39. package/dist/esm/page/index/dv/ms-member/index.vue.js +2 -2
  40. package/dist/esm/page/index/dv/ms-role/index.vue.js +2 -2
  41. package/dist/esm/page/index/material/index.vue.js +2 -2
  42. package/dist/esm/page/login/index.vue.js +2 -2
  43. package/dist/esm/page/login/index.vue2.js +2 -17
  44. package/dist/esm/page/login/index.vue2.js.map +1 -1
  45. package/dist/esm/page/signup/index.vue.js +2 -2
  46. package/dist/esm/page/signup/index.vue2.js +2 -18
  47. package/dist/esm/page/signup/index.vue2.js.map +1 -1
  48. package/dist/esm/router-middleware/auth.d.ts +2 -1
  49. package/dist/esm/router-middleware/auth.js +1 -3
  50. package/dist/esm/router-middleware/auth.js.map +1 -1
  51. package/package.json +8 -5
  52. package/gulpfile.ts +0 -1
  53. package/rollup.config.mjs +0 -11
  54. package/src/ConfigComponents.ts +0 -20
  55. package/src/MSAppClient.ts +0 -343
  56. package/src/MSDataFilterComponents.ts +0 -6
  57. package/src/MSDataFormComponents.ts +0 -12
  58. package/src/MSDataTableComponents.ts +0 -6
  59. package/src/MaterialComponents.ts +0 -26
  60. package/src/PermissionPointManager.ts +0 -26
  61. package/src/Router.ts +0 -133
  62. package/src/UserInfo.ts +0 -66
  63. package/src/UserSession.ts +0 -190
  64. package/src/components/image-select/image-select-option.ts +0 -11
  65. package/src/components/image-select/image-select.tsx +0 -40
  66. package/src/components/image-select/index.ts +0 -6
  67. package/src/components/index.ts +0 -8
  68. package/src/components/material-list/index.ts +0 -7
  69. package/src/components/material-list/material-group-form-popover.vue +0 -66
  70. package/src/components/material-list/material-group.vue +0 -138
  71. package/src/components/material-list/material-item.vue +0 -26
  72. package/src/components/material-list/material-list-options.ts +0 -23
  73. package/src/components/material-list/material-list.vue +0 -151
  74. package/src/components/material-select/index.ts +0 -15
  75. package/src/components/material-select/material-select-api.ts +0 -48
  76. package/src/components/material-select/material-select-options.ts +0 -18
  77. package/src/components/material-select/material-select-type.ts +0 -11
  78. package/src/components/material-select/material-select.tsx +0 -95
  79. package/src/components/member-table/index.ts +0 -6
  80. package/src/components/member-table/member-table.vue +0 -220
  81. package/src/components/menu-permission-table/index.ts +0 -6
  82. package/src/components/menu-permission-table/menu-permission-table.vue +0 -143
  83. package/src/components/role-permission-config/index.ts +0 -7
  84. package/src/components/role-permission-config/role-permission-config-options.ts +0 -20
  85. package/src/components/role-permission-config/role-permission-config.tsx +0 -280
  86. package/src/components/system-provider/index.ts +0 -5
  87. package/src/components/system-provider/system-provider.tsx +0 -93
  88. package/src/components/verify-dialog/index.ts +0 -5
  89. package/src/components/verify-dialog/verify-dialog-option.ts +0 -23
  90. package/src/components/verify-dialog/verify-dialog.tsx +0 -113
  91. package/src/composables/index.ts +0 -13
  92. package/src/composables/on-tab-before-close.ts +0 -8
  93. package/src/composables/on-tab-before-switch.ts +0 -8
  94. package/src/composables/on-tab-refresh.ts +0 -8
  95. package/src/composables/use-current-tab.ts +0 -5
  96. package/src/composables/use-http-request.ts +0 -5
  97. package/src/composables/use-ms-app-client.ts +0 -10
  98. package/src/composables/use-user-info.ts +0 -4
  99. package/src/constants/index.ts +0 -2
  100. package/src/constants/route.ts +0 -4
  101. package/src/constants/token.ts +0 -5
  102. package/src/dataview/config/ConfigForm.ts +0 -110
  103. package/src/dataview/config/ConfigTable.ts +0 -68
  104. package/src/dataview/config/index.ts +0 -2
  105. package/src/dataview/department/DepartmentForm.ts +0 -43
  106. package/src/dataview/department/DepartmentTable.ts +0 -67
  107. package/src/dataview/department/index.ts +0 -2
  108. package/src/dataview/index.ts +0 -7
  109. package/src/dataview/material/MaterialForm.ts +0 -51
  110. package/src/dataview/material/MaterialMan.ts +0 -176
  111. package/src/dataview/material/MaterialTable.ts +0 -123
  112. package/src/dataview/material/index.ts +0 -4
  113. package/src/dataview/material/material-group/MaterialGroupForm.ts +0 -30
  114. package/src/dataview/material/material-group/MaterialGroupTable.ts +0 -60
  115. package/src/dataview/material/material-group/index.ts +0 -2
  116. package/src/dataview/member/MemberForm.ts +0 -122
  117. package/src/dataview/member/MemberTable.tsx +0 -242
  118. package/src/dataview/member/index.ts +0 -2
  119. package/src/dataview/member/member-role/MemberRoleTable.ts +0 -21
  120. package/src/dataview/menu/MenuForm.ts +0 -113
  121. package/src/dataview/menu/MenuTable.ts +0 -37
  122. package/src/dataview/menu/MenuTree.ts +0 -143
  123. package/src/dataview/menu/index.ts +0 -4
  124. package/src/dataview/menu/permission-point/PermissionPointDefineForm.ts +0 -28
  125. package/src/dataview/menu/permission-point/PermissionPointDefineTable.ts +0 -30
  126. package/src/dataview/menu/permission-point/index.ts +0 -2
  127. package/src/dataview/role/RoleForm.ts +0 -36
  128. package/src/dataview/role/RolePermissionConfigTable.ts +0 -471
  129. package/src/dataview/role/RoleTable.ts +0 -68
  130. package/src/dataview/role/index.ts +0 -5
  131. package/src/dataview/role/role-permission-point/RolePermissionPointTable.ts +0 -27
  132. package/src/dataview/role/role-permission-point/index.ts +0 -1
  133. package/src/dataview/role/role-route/RoleRouteTable.ts +0 -28
  134. package/src/dataview/role/role-route/index.ts +0 -1
  135. package/src/dataview/route/RouteForm.ts +0 -92
  136. package/src/dataview/route/RouteTable.ts +0 -71
  137. package/src/dataview/route/index.ts +0 -2
  138. package/src/init-application.ts +0 -84
  139. package/src/installer.ts +0 -26
  140. package/src/layouts/index.ts +0 -1
  141. package/src/layouts/manager-system/components/aside/aside.tsx +0 -45
  142. package/src/layouts/manager-system/components/aside/bar/bar.tsx +0 -79
  143. package/src/layouts/manager-system/components/aside/bar/index.ts +0 -5
  144. package/src/layouts/manager-system/components/aside/index.ts +0 -5
  145. package/src/layouts/manager-system/components/aside/menu/index.ts +0 -5
  146. package/src/layouts/manager-system/components/aside/menu/menu-item.tsx +0 -63
  147. package/src/layouts/manager-system/components/aside/menu/menu.tsx +0 -51
  148. package/src/layouts/manager-system/components/aside/panel/index.ts +0 -5
  149. package/src/layouts/manager-system/components/aside/panel/panel.tsx +0 -57
  150. package/src/layouts/manager-system/components/header/breadcrumb/breadcrumb.tsx +0 -47
  151. package/src/layouts/manager-system/components/header/breadcrumb/index.ts +0 -5
  152. package/src/layouts/manager-system/components/header/header.tsx +0 -17
  153. package/src/layouts/manager-system/components/header/index.ts +0 -5
  154. package/src/layouts/manager-system/components/header/nav/index.ts +0 -5
  155. package/src/layouts/manager-system/components/header/nav/nav.tsx +0 -100
  156. package/src/layouts/manager-system/components/header/tabs/index.ts +0 -5
  157. package/src/layouts/manager-system/components/header/tabs/tabs.tsx +0 -72
  158. package/src/layouts/manager-system/components/header/tools/index.ts +0 -5
  159. package/src/layouts/manager-system/components/header/tools/tools.tsx +0 -15
  160. package/src/layouts/manager-system/index.ts +0 -6
  161. package/src/layouts/manager-system/manager-system.tsx +0 -25
  162. package/src/menu/Menu.ts +0 -142
  163. package/src/menu/MenuNode.ts +0 -49
  164. package/src/menu/index.ts +0 -2
  165. package/src/page/index/dv/default/add.vue +0 -49
  166. package/src/page/index/dv/default/edit.vue +0 -55
  167. package/src/page/index/dv/default/index.vue +0 -56
  168. package/src/page/index/dv/default/tree.vue +0 -31
  169. package/src/page/index/dv/ms-member/index.vue +0 -38
  170. package/src/page/index/dv/ms-role/index.vue +0 -28
  171. package/src/page/index/material/index.vue +0 -14
  172. package/src/page/login/index.vue +0 -191
  173. package/src/page/signup/index.vue +0 -157
  174. package/src/resolver/ITypeResolver.ts +0 -5
  175. package/src/router-middleware/auth.ts +0 -64
  176. package/src/router-middleware/index.ts +0 -1
  177. package/src/tabs/Tab.ts +0 -59
  178. package/src/tabs/Tabs.ts +0 -176
  179. package/src/tabs/index.ts +0 -2
  180. package/src/tokens/index.ts +0 -1
  181. package/src/tokens/ms-app-client.ts +0 -10
  182. package/style/components/image-select.scss +0 -13
  183. package/style/components/index.scss +0 -9
  184. package/style/components/material-group.scss +0 -38
  185. package/style/components/material-item.scss +0 -20
  186. package/style/components/material-list.scss +0 -67
  187. package/style/components/material-select.scss +0 -23
  188. package/style/components/member-table.scss +0 -9
  189. package/style/components/menu-permission-table.scss +0 -43
  190. package/style/components/role-permission-config.scss +0 -18
  191. package/style/components/verify-dialog.scss +0 -16
  192. package/style/index.scss +0 -4
  193. package/style/layouts/index.scss +0 -1
  194. package/style/layouts/manager-system/aside.scss +0 -116
  195. package/style/layouts/manager-system/header.scss +0 -129
  196. package/style/layouts/manager-system/index.scss +0 -4
  197. package/style/layouts/manager-system/manager-system.scss +0 -26
  198. package/style/layouts/manager-system/menu.scss +0 -47
  199. package/style/page/login.scss +0 -107
  200. package/tsconfig.build.json +0 -10
  201. package/tsconfig.json +0 -14
@@ -1,14 +0,0 @@
1
- <template>
2
- <MKMaterialList :material-man="materialMan" />
3
- </template>
4
- <script setup lang="ts">
5
- import { reactive } from "vue";
6
- import { MaterialMan } from "../../../dataview";
7
- import { MKMaterialList } from "../../../components";
8
- import { MaterialComponents } from "../../../MaterialComponents";
9
-
10
- const materialMan = reactive(
11
- new MaterialMan({ components: new MaterialComponents() })
12
- ) as MaterialMan;
13
- </script>
14
- <style lang="scss"></style>
@@ -1,191 +0,0 @@
1
- <template>
2
- <div class="login-wrap">
3
- <div class="login-bg">
4
- <div class="login-bg-block"></div>
5
- <div class="login-bg-block"></div>
6
- </div>
7
- <div class="login-root">
8
- <div class="login-main">
9
- <div class="form-container">
10
- <div class="form-wrap">
11
- <div class="form-title" v-if="!forgotPassword">
12
- 账号登录
13
- <span class="notify">
14
- 没有账号?<ElButton
15
- link
16
- class="operaBtn"
17
- @click="router.push('/signup')"
18
- >
19
- 申请使用
20
- </ElButton>
21
- </span>
22
- </div>
23
- <div class="form-title" v-else>账号重置</div>
24
- <ElForm
25
- :model="loginFormData"
26
- :rules="rules"
27
- size="large"
28
- ref="formEl"
29
- @submit.native.prevent
30
- >
31
- <ElFormItem prop="account">
32
- <ElInput
33
- v-model="loginFormData.account"
34
- placeholder="帐号"
35
- @keyup.enter.native.prevent="verifyHandle"
36
- />
37
- </ElFormItem>
38
- <ElFormItem prop="password" v-if="!forgotPassword">
39
- <ElInput
40
- v-model="loginFormData.password"
41
- type="password"
42
- placeholder="密码"
43
- @keyup.enter.native.prevent="verifyHandle"
44
- />
45
- </ElFormItem>
46
- <ElFormItem>
47
- <ElRow style="width: 100%">
48
- <ElCol :span="12">
49
- <ElButton
50
- link
51
- class="operaBtn"
52
- @click="forgotPassword = !forgotPassword"
53
- >{{
54
- forgotPassword ? "返回登陆" : "忘记密码?"
55
- }}</ElButton
56
- >
57
- </ElCol>
58
- </ElRow>
59
- </ElFormItem>
60
- <ElFormItem>
61
- <ElButton
62
- type="primary"
63
- style="width: 100%"
64
- :loading="loading"
65
- @click="verifyHandle"
66
- :disabled="loginDisabled"
67
- v-if="!forgotPassword"
68
- >
69
- 登陆
70
- </ElButton>
71
- <ElButton
72
- type="primary"
73
- style="width: 100%"
74
- :loading="loading"
75
- @click="verifyHandle"
76
- :disabled="resetDisabled"
77
- v-else
78
- >
79
- 重置
80
- </ElButton>
81
- </ElFormItem>
82
- </ElForm>
83
- <ElDivider></ElDivider>
84
- </div>
85
- </div>
86
- </div>
87
- </div>
88
- </div>
89
-
90
- <MKVerifyDialog
91
- :scene="scene"
92
- v-model:visible="verifyVisible"
93
- v-if="verifyVisible"
94
- @verifySuccessful="handleLogin"
95
- />
96
- </template>
97
-
98
- <script setup lang="ts">
99
- import { ElMessage, ElForm, ElFormItem } from "element-plus";
100
- import { useMSAppClient } from "../../composables";
101
- import { MKVerifyDialog } from "../../components";
102
- import { Ref, computed, reactive, ref } from "vue";
103
- import { useRouter } from "vue-router";
104
-
105
- defineOptions({
106
- mkRoute: {
107
- name: "login",
108
- path: "/login",
109
- meta: {
110
- isAuthorization: false,
111
- },
112
- },
113
- });
114
-
115
- // 记住登陆状态
116
- const rememberLoginState = ref(false);
117
-
118
- const formEl: Ref<any> = ref(null);
119
-
120
- const system = useMSAppClient()!;
121
-
122
- const router = useRouter();
123
-
124
- const loading = ref(false);
125
-
126
- const loginDisabled = computed(
127
- () => !loginFormData.account || !loginFormData.password
128
- );
129
- const resetDisabled = computed(() => !loginFormData.account);
130
-
131
- const forgotPassword = ref(false);
132
- const scene = computed(() =>
133
- forgotPassword.value ? "ModifyPassword" : "Login"
134
- );
135
-
136
- const rules = {
137
- account: [{ required: true, message: "账号必填" }],
138
- password: [{ required: true, message: "密码必填" }],
139
- };
140
-
141
- const loginFormData = reactive({
142
- account: "",
143
- password: "",
144
- vCode: "code",
145
- });
146
- const verifyVisible = ref(false);
147
-
148
- const verifyHandle = async () => {
149
- const result = await formEl.value?.validate();
150
- if (!result) {
151
- return;
152
- }
153
- verifyVisible.value = true;
154
- };
155
-
156
- const handleLogin = async (v: string) => {
157
- loginFormData.vCode = v;
158
- try {
159
- loading.value = true;
160
- if (forgotPassword.value) {
161
- const { data } = await system.modifyPassword(
162
- loginFormData.account,
163
- loginFormData.vCode
164
- );
165
- if (data.code !== 200) {
166
- ElMessage.error(data.msg || "重置邮箱失败!");
167
- return;
168
- }
169
- ElMessage.success("重置密码邮件已发送到邮箱");
170
- verifyVisible.value = false;
171
- forgotPassword.value = false;
172
- } else {
173
- const { data } = await system.login(
174
- loginFormData.account,
175
- loginFormData.password,
176
- loginFormData.vCode
177
- );
178
-
179
- if (data.code !== 200) {
180
- ElMessage.error(data.msg || "登录失败!");
181
- return;
182
- }
183
- verifyVisible.value = false;
184
-
185
- router.push({ path: "/" });
186
- }
187
- } finally {
188
- loading.value = false;
189
- }
190
- };
191
- </script>
@@ -1,157 +0,0 @@
1
- <template>
2
- <div class="login-wrap">
3
- <div class="login-bg">
4
- <div class="login-bg-block"></div>
5
- <div class="login-bg-block"></div>
6
- </div>
7
- <div class="login-root">
8
- <div class="login-main">
9
- <div class="form-container">
10
- <div class="form-wrap">
11
- <div class="form-title" v-if="!forgotPassword">
12
- 账号注册
13
- <span class="notify">
14
- 已有账号?<ElButton
15
- link
16
- class="operaBtn"
17
- @click="router.push('/login')"
18
- >
19
- 返回登录
20
- </ElButton>
21
- </span>
22
- </div>
23
- <div class="form-title" v-else>账号重置</div>
24
- <ElForm
25
- :model="signFormData"
26
- :rules="rules"
27
- size="large"
28
- ref="formEl"
29
- >
30
- <ElFormItem prop="account">
31
- <ElInput v-model="signFormData.account" placeholder="帐号" />
32
- </ElFormItem>
33
- <ElFormItem prop="email">
34
- <ElInput v-model="signFormData.email" placeholder="邮箱" />
35
- </ElFormItem>
36
- <ElFormItem prop="name">
37
- <ElInput v-model="signFormData.name" placeholder="姓名" />
38
- </ElFormItem>
39
- <ElFormItem prop="nickName">
40
- <ElInput v-model="signFormData.nickName" placeholder="昵称" />
41
- </ElFormItem>
42
- <ElFormItem prop="phone">
43
- <ElInput v-model="signFormData.phone" placeholder="手机号" />
44
- </ElFormItem>
45
-
46
- <ElFormItem>
47
- <ElButton
48
- type="primary"
49
- style="width: 100%"
50
- :loading="loading"
51
- @click="verifyHandle"
52
- >
53
- 提交申请
54
- </ElButton>
55
- </ElFormItem>
56
- </ElForm>
57
- <ElDivider></ElDivider>
58
- </div>
59
- </div>
60
- </div>
61
- </div>
62
- </div>
63
-
64
- <MKVerifyDialog
65
- :scene="scene"
66
- v-model:visible="verifyVisible"
67
- v-if="verifyVisible"
68
- @verifySuccessful="handleSign"
69
- />
70
- </template>
71
-
72
- <script setup lang="ts">
73
- import { Ref, computed, reactive, ref } from "vue";
74
- import { useRouter } from "vue-router";
75
- import { FormRules } from "element-plus";
76
- import { Messager } from "@maketribe/dm";
77
- import { useHttpRequest } from "../../composables";
78
- import { MKVerifyDialog } from "../../components";
79
-
80
- defineOptions({
81
- mkRoute: {
82
- name: "signup",
83
- path: "/signup",
84
- meta: {
85
- isAuthorization: false,
86
- },
87
- },
88
- });
89
-
90
- const formEl: Ref<any> = ref(null);
91
-
92
- const router = useRouter();
93
-
94
- const httpRequest = useHttpRequest();
95
-
96
- const loading = ref(false);
97
-
98
- const verifyVisible = ref(false);
99
-
100
- const forgotPassword = ref(false);
101
- const scene = computed(() =>
102
- forgotPassword.value ? "ModifyPassword" : "Login"
103
- );
104
- const rules: FormRules = {
105
- account: [{ required: true, message: "账号必填" }],
106
- email: [
107
- {
108
- required: true,
109
- trigger: "change",
110
- validator: (rule, value, callback) => {
111
- if (!value) {
112
- callback(new Error("邮箱必填"));
113
- } else if (
114
- !/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(value)
115
- ) {
116
- callback(new Error("邮箱规则不符"));
117
- } else {
118
- callback();
119
- }
120
- },
121
- },
122
- ],
123
- name: [{ required: true, message: "姓名必填" }],
124
- };
125
-
126
- const verifyHandle = async () => {
127
- const result = await formEl.value.validate();
128
- if (!result) {
129
- return;
130
- }
131
- verifyVisible.value = true;
132
- };
133
-
134
- const signFormData = reactive({
135
- account: "",
136
- email: "",
137
- name: "",
138
- nickName: "",
139
- phone: "",
140
- });
141
-
142
- const handleSign = async (v: string) => {
143
- const result = await httpRequest.post(
144
- "/api/dv/ms-member/apply/account",
145
- signFormData
146
- );
147
- if (result.data.code != 200) {
148
- Messager.instance.error(result.data.msg || "注册失败");
149
- return;
150
- }
151
- verifyVisible.value = false;
152
- Messager.instance.success({ message: "注册成功,请联系管理员通过验证" });
153
- };
154
-
155
- // 记住登陆状态
156
- const rememberLoginState = ref(false);
157
- </script>
@@ -1,5 +0,0 @@
1
- export interface ITypeResolver<T> {
2
- resolveType(type: string): string;
3
-
4
- resolveItemType(item: T): string;
5
- }
@@ -1,64 +0,0 @@
1
- import { MSAppClient } from "../MSAppClient";
2
- import { isSameRoute } from "@maketribe/utils";
3
- import { RouteLocationNormalized, RouteLocationRaw } from "vue-router";
4
-
5
- export const authBeforeEach = async (
6
- to: RouteLocationNormalized,
7
- from: RouteLocationNormalized
8
- ): Promise<RouteLocationRaw | void> => {
9
- if (to.meta.isAuthorization === false) {
10
- return;
11
- }
12
-
13
- const msAppClient = MSAppClient.instance!;
14
-
15
- let userSession = msAppClient.userSession;
16
-
17
- if (!userSession) {
18
- try {
19
- await msAppClient.loadCurrentUserSession();
20
-
21
- userSession = msAppClient.userSession;
22
-
23
- if (!userSession) {
24
- return { name: "login" };
25
- }
26
-
27
- // 因为登陆成功会添加用户可以访问的路由,这里给到vue-router去重新resolve
28
- return { path: to.path };
29
- } catch (e) {
30
- return { name: "login" };
31
- }
32
- }
33
-
34
- const tabs = userSession.tabs;
35
- const router = userSession.router;
36
-
37
- const route = router.getRouteByName(to.name as string);
38
-
39
- if (!route) {
40
- // 前往第一个菜单
41
- const menuNode = userSession.menu.getFirstLeafMenuNode();
42
-
43
- if (!menuNode || !menuNode.route) {
44
- return { name: "login" };
45
- }
46
-
47
- return { name: menuNode.route.name };
48
- }
49
-
50
- const matched = to.matched[to.matched.length - 1];
51
-
52
- if (matched) {
53
- if (!isSameRoute(router.currentRoute, to)) {
54
- router.changeRoute(to);
55
- }
56
-
57
- const tab = tabs.getTabByID(to.name as string);
58
-
59
- if (tab) {
60
- tab.affix = matched.meta.affix as boolean;
61
- tab.realRoute = to;
62
- }
63
- }
64
- };
@@ -1 +0,0 @@
1
- export * from "./auth";
package/src/tabs/Tab.ts DELETED
@@ -1,59 +0,0 @@
1
- import { Disposable, Event } from "@maketribe/utils";
2
- import { Route } from "../dataview";
3
- import type { Tabs } from "./Tabs";
4
-
5
- export interface TabOptions {
6
- id: string;
7
-
8
- title: string;
9
-
10
- affix?: boolean;
11
-
12
- realRoute: any;
13
-
14
- route: Route;
15
-
16
- tabs: Tabs;
17
- }
18
-
19
- export class Tab extends Disposable {
20
- id: string;
21
-
22
- title: string;
23
-
24
- affix: boolean;
25
-
26
- realRoute: any;
27
-
28
- route: Route;
29
-
30
- beforeCloseEvent: Event = this.register(new Event());
31
-
32
- refreshEvent: Event = this.register(new Event());
33
-
34
- beforeSwitchEvent: Event = this.register(new Event());
35
-
36
- tabs: Tabs;
37
-
38
- constructor(options: TabOptions) {
39
- super();
40
- this.id = options.id;
41
- this.title = options.title;
42
- this.affix = options.affix ?? false;
43
- this.realRoute = options.realRoute;
44
- this.route = options.route;
45
- this.tabs = options.tabs;
46
- }
47
-
48
- getTitle() {
49
- return this.title;
50
- }
51
-
52
- getID() {
53
- return this.id;
54
- }
55
-
56
- close() {
57
- this.tabs.closeTab(this);
58
- }
59
- }
package/src/tabs/Tabs.ts DELETED
@@ -1,176 +0,0 @@
1
- import { Disposable, Event } from "@maketribe/utils";
2
- import { Tab, TabOptions } from "./Tab";
3
- import type { UserSession } from "../UserSession";
4
-
5
- export class Tabs extends Disposable {
6
- userSession: UserSession;
7
-
8
- _tabs: Tab[] = [];
9
- _currentTab: Tab | null = null;
10
-
11
- currentTabChangeEvent: Event<{ currentTab: Tab | null }> = this.register(
12
- new Event()
13
- );
14
- tabsChangeEvent: Event<{ tabs: Tab[] }> = this.register(new Event());
15
-
16
- constructor(userSession: UserSession) {
17
- super();
18
- this.userSession = userSession;
19
- }
20
-
21
- init() {
22
- const getAffixRoutes = () => {
23
- let routes = this.userSession.vueRouter.getRoutes().slice();
24
-
25
- const affixRoutes: any[] = [];
26
-
27
- for (let i = 0; i < routes.length; i++) {
28
- const route = routes[i];
29
-
30
- if (route.meta?.affix === true) {
31
- affixRoutes.push(route);
32
- }
33
- }
34
-
35
- return affixRoutes;
36
- };
37
-
38
- const getAffixTabs = () => {
39
- return getAffixRoutes()
40
- .map((affixRoute) => {
41
- const route = this.userSession.router.getRouteByName(
42
- affixRoute.name as string
43
- );
44
-
45
- if (!route) {
46
- return null;
47
- }
48
-
49
- return this.createTab({
50
- id: affixRoute.path,
51
- title: route.title,
52
- affix: true,
53
- route: route,
54
- realRoute: affixRoute,
55
- });
56
- })
57
- .filter(Boolean) as Tab[];
58
- };
59
-
60
- this.setTabs(getAffixTabs());
61
- }
62
-
63
- getTabs() {
64
- return this._tabs;
65
- }
66
-
67
- getCurrentTab() {
68
- return this._currentTab;
69
- }
70
-
71
- setCurrentTab(tab: Tab | null) {
72
- if (this._currentTab === tab) {
73
- return;
74
- }
75
-
76
- this._currentTab = tab;
77
-
78
- this.currentTabChangeEvent.emit({ currentTab: tab });
79
- }
80
-
81
- getTabByID(id: string) {
82
- return this._tabs.find((tab) => tab.id === id) ?? null;
83
- }
84
-
85
- createTab(options: Omit<TabOptions, "tabs">) {
86
- return this.register(new Tab({ ...options, tabs: this }));
87
- }
88
-
89
- setTabs(tabs: Tab[]): void {
90
- this._tabs = tabs;
91
-
92
- this.tabsChangeEvent.emit({ tabs });
93
- }
94
-
95
- switchTab(tab: Tab | null) {
96
- if (!tab) {
97
- this.setCurrentTab(null);
98
- return;
99
- }
100
-
101
- let _tab = this._tabs.find((item) => item.getID() === tab.getID());
102
-
103
- if (!_tab) {
104
- this.setTabs([...this.getTabs(), tab]);
105
- }
106
-
107
- this.setCurrentTab(tab);
108
- }
109
-
110
- findTabByID(id: Tab["id"]) {
111
- return this.getTabs().find((tab) => tab.id === id) ?? null;
112
- }
113
-
114
- async closeTab(tab: Tab) {
115
- if ((await tab.beforeCloseEvent.emitAsync()) === false) {
116
- return;
117
- }
118
-
119
- const tabItemList = this.getTabs().slice();
120
-
121
- if (this.getCurrentTab()?.getID() !== tab.getID()) {
122
- this.setTabs(tabItemList.filter((item) => item.getID() !== tab.getID()));
123
-
124
- return;
125
- }
126
-
127
- const index = tabItemList.findIndex((item) => item.getID() === tab.getID());
128
-
129
- if (index === -1) {
130
- return;
131
- }
132
-
133
- const deleteTab = tabItemList[index];
134
- deleteTab.dispose();
135
-
136
- tabItemList.splice(index, 1);
137
- this.setTabs(tabItemList);
138
-
139
- this.setCurrentTab(this._tabs[this._tabs.length - 1] ?? null);
140
- }
141
-
142
- closeAll() {
143
- const affixTabs = this.getTabs().filter((tab) => tab.affix);
144
-
145
- if (affixTabs.length) {
146
- this.setTabs(affixTabs);
147
- this.setCurrentTab(affixTabs[0]);
148
- return;
149
- }
150
-
151
- this.setTabs([this.getCurrentTab() ?? this.getTabs()[0]]);
152
- this.setCurrentTab(this.getTabs()[0]);
153
- }
154
-
155
- closeOther() {
156
- const currentTab = this.getCurrentTab();
157
-
158
- if (!currentTab) {
159
- return;
160
- }
161
-
162
- const affixTabs = this.getTabs().filter((tab) => tab.affix);
163
-
164
- if (affixTabs.length) {
165
- if (affixTabs.find((item) => item.getID() === currentTab.getID())) {
166
- this.setTabs(affixTabs);
167
- } else {
168
- this.setTabs([...affixTabs, currentTab]);
169
- }
170
-
171
- return;
172
- }
173
-
174
- this.setTabs([currentTab]);
175
- }
176
- }
package/src/tabs/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./Tab";
2
- export * from "./Tabs";
@@ -1 +0,0 @@
1
- export * from "./ms-app-client";
@@ -1,10 +0,0 @@
1
- import { InjectionKey } from "vue";
2
- import { MSAppClient } from "../MSAppClient";
3
-
4
- export interface MSAppClientContext {
5
- msAppClient: MSAppClient;
6
- }
7
-
8
- export const MSAPPCLIENT_CONTEXT_KEY: InjectionKey<MSAppClientContext> = Symbol(
9
- "msAppClientContextKey"
10
- );
@@ -1,13 +0,0 @@
1
- .img-select {
2
- display: flex;
3
- &-content {
4
- width: 200px;
5
- cursor: pointer;
6
- }
7
- &-icon {
8
- border: 1px dashed var(--el-input-border-color, var(--el-border-color));
9
- cursor: pointer;
10
- width: 200px;
11
- height: 200px;
12
- }
13
- }