@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,110 +0,0 @@
1
- import {
2
- Components,
3
- DataForm,
4
- DataFormOptions,
5
- FormColumn,
6
- IComponents,
7
- defineDataForm,
8
- } from "@maketribe/dm";
9
- import { ITypeResolver } from "../../resolver/ITypeResolver";
10
-
11
- export type Config<T = any> = {
12
- id: string;
13
- key: string;
14
- type: string;
15
- value: T;
16
- };
17
-
18
- export type ConfigFormOptions = DataFormOptions & {
19
- typeResolver?: ITypeResolver<Config>;
20
- configComponent?: IComponents;
21
- };
22
-
23
- export class ConfigForm extends DataForm<Config> implements ITypeResolver<Config> {
24
- configComponent: IComponents;
25
-
26
- constructor(options: ConfigFormOptions = {}) {
27
- super({ name: "ms-cfg", ...options });
28
-
29
- this.configComponent = options.configComponent ?? new Components();
30
- }
31
-
32
- protected async initialize() {
33
- const defaultType = "string";
34
- this.setColumns([
35
- new FormColumn({ name: "id", label: "编号" }),
36
- new FormColumn({ name: "key", label: "配置键", required: true }),
37
- new FormColumn({
38
- name: "type",
39
- label: "类型",
40
- componentInfo: "MKFormDataSelect",
41
- defaultValue: defaultType,
42
- required: true,
43
- componentProps: {
44
- options: [
45
- { value: "string", label: "字符串" },
46
- { value: "int", label: "整数" },
47
- ],
48
- onChange: () => {
49
- this.handleTypeChange(this.data);
50
-
51
- if (this.data) {
52
- this.data.value = null;
53
- }
54
- },
55
- },
56
- }),
57
- new FormColumn({
58
- name: "value",
59
- label: "配置值",
60
- required: true,
61
- defaultValue: null,
62
- componentInfo: this.resolveType(defaultType),
63
- }),
64
- ]);
65
-
66
- this.dataChangeEvent.on(({ data }) => {
67
- this.handleTypeChange(data);
68
- });
69
- }
70
-
71
- handleTypeChange(data: Config | null) {
72
- if (!data) {
73
- return;
74
- }
75
-
76
- const valueFormColumn = this.getColumn("value")!;
77
- valueFormColumn.componentInfo =
78
- this.configComponent.resolveComponent(this.resolveItemType(data!)) ||
79
- this.configComponent.resolveComponent("MKFormInput")!;
80
- }
81
-
82
- formatItem(item: Config): Config {
83
- return {
84
- ...item,
85
- value: JSON.parse(item.value),
86
- };
87
- }
88
-
89
- formatSubmitData(data: any) {
90
- return {
91
- ...data,
92
- value: JSON.stringify(data.value),
93
- };
94
- }
95
-
96
- resolveType(type: string) {
97
- switch (type) {
98
- case "int":
99
- return "MKFormInputNumber";
100
- default:
101
- return "MKFormInput";
102
- }
103
- }
104
-
105
- resolveItemType(config: Config) {
106
- return this.resolveType(config.type);
107
- }
108
- }
109
-
110
- defineDataForm(ConfigForm);
@@ -1,68 +0,0 @@
1
- import { Where } from "@maketribe/request";
2
- import {
3
- DataTable,
4
- DataTableOptions,
5
- TableColumn,
6
- TableActionColumn,
7
- defineDataTable,
8
- } from "@maketribe/dm";
9
- import { Config } from "./ConfigForm";
10
- import { R, ResponseConfig } from "@maketribe/request";
11
-
12
- export class ConfigTable extends DataTable<Config> {
13
- private static _instance: ConfigTable | null = null;
14
-
15
- static get instance(): ConfigTable {
16
- if (!ConfigTable._instance) {
17
- ConfigTable._instance = new ConfigTable();
18
- ConfigTable._instance.dataFilter.setReady();
19
- }
20
-
21
- return ConfigTable._instance;
22
- }
23
-
24
- constructor(options: DataTableOptions = {}) {
25
- super({ name: "ms-cfg", ...options });
26
- }
27
-
28
- protected async initialize() {
29
- this.setColumns([
30
- new TableColumn({ name: "id", label: "编号", visible: false }),
31
- new TableColumn({ name: "key", label: "配置键" }),
32
- new TableActionColumn(),
33
- ]);
34
- }
35
-
36
- formatItem(item: Config): Config {
37
- let value = item.value;
38
-
39
- try {
40
- value = JSON.parse(value);
41
- } catch (e) {}
42
-
43
- return { ...item, value };
44
- }
45
-
46
- static async loadConfig<T = any>(
47
- key: string
48
- ): Promise<ResponseConfig<R<Config<T>>>> {
49
- const where = new Where();
50
-
51
- where.addCondition("key", "=", key);
52
-
53
- const dataViewRequest = ConfigTable.instance.dataViewRequest;
54
- const response = await dataViewRequest.allList({
55
- data: { condition: where },
56
- });
57
-
58
- return {
59
- ...response,
60
- data: {
61
- ...response.data,
62
- data: response.data.data?.[0] ?? null,
63
- },
64
- };
65
- }
66
- }
67
-
68
- defineDataTable(ConfigTable);
@@ -1,2 +0,0 @@
1
- export * from "./ConfigForm";
2
- export * from "./ConfigTable";
@@ -1,43 +0,0 @@
1
- import {
2
- DataForm,
3
- DataFormOptions,
4
- FormColumn,
5
- defineDataForm,
6
- } from "@maketribe/dm";
7
-
8
- export type Department = {
9
- id: string;
10
- name: string;
11
- pid: string | null;
12
- };
13
-
14
- export class DepartmentForm extends DataForm<Department> {
15
- constructor(options: DataFormOptions = {}) {
16
- super({ name: "ms-dept", ...options });
17
- }
18
-
19
- protected async initialize() {
20
- this.setColumns([
21
- new FormColumn({ name: "id", label: "编号" }),
22
- new FormColumn({ name: "name", label: "名称", required: true }),
23
- new FormColumn({ name: "pid", label: "父部门ID", visible: false }),
24
- ]);
25
- }
26
-
27
- formatSubmitData(data: any) {
28
- return {
29
- ...data,
30
- pid: data.pid || null,
31
- };
32
- }
33
-
34
- formatItem(item: Department): Department {
35
- return {
36
- id: item.id,
37
- name: item.name || "",
38
- pid: item.pid || null,
39
- };
40
- }
41
- }
42
-
43
- defineDataForm(DepartmentForm);
@@ -1,67 +0,0 @@
1
- import {
2
- DataTableOptions,
3
- TableColumn,
4
- DataTable,
5
- defineDataTable,
6
- } from "@maketribe/dm";
7
- import { Department } from "./DepartmentForm";
8
-
9
- export type DepartmentNode = Department & { children: DepartmentNode[] };
10
-
11
- export class DepartmentTable<
12
- T extends Department = Department,
13
- F extends Department = Department
14
- > extends DataTable<T, F> {
15
- constructor(options: DataTableOptions = {}) {
16
- super({
17
- pageSize: 0,
18
- pageSizes: [],
19
- name: "ms-dept",
20
- ...options,
21
- interfaceURL: {
22
- list: "/api/dv/ms-dept/allList",
23
- ...options.interfaceURL,
24
- },
25
- });
26
- }
27
-
28
- protected async initialize() {
29
- this.setColumns([
30
- new TableColumn({ name: "id", label: "编号", visible: false }),
31
- new TableColumn({ name: "name", label: "名称" }),
32
- new TableColumn({ name: "leader", label: "部门负责人" }),
33
- ]);
34
- }
35
-
36
- setList(list: F[]): void {
37
- const rootDepartments: DepartmentNode[] = [];
38
-
39
- const departments = list as unknown as DepartmentNode[];
40
-
41
- for (const department of departments) {
42
- department.children = [];
43
-
44
- if (!department.pid) {
45
- rootDepartments.push(department);
46
- }
47
-
48
- for (const item of departments) {
49
- if (department.id === item.pid) {
50
- department.children.push(item);
51
- }
52
- }
53
- }
54
-
55
- super.setList(rootDepartments as unknown as F[]);
56
- }
57
-
58
- formatItem(item: T): F {
59
- return {
60
- id: item.id,
61
- name: item.name || "",
62
- pid: item.pid || null,
63
- } as F;
64
- }
65
- }
66
-
67
- defineDataTable(DepartmentTable);
@@ -1,2 +0,0 @@
1
- export * from "./DepartmentForm";
2
- export * from "./DepartmentTable";
@@ -1,7 +0,0 @@
1
- export * from "./department";
2
- export * from "./member";
3
- export * from "./menu";
4
- export * from "./role";
5
- export * from "./route";
6
- export * from "./config";
7
- export * from "./material";
@@ -1,51 +0,0 @@
1
- import {
2
- DataForm,
3
- DataFormOptions,
4
- FormColumn,
5
- defineDataForm,
6
- } from "@maketribe/dm";
7
-
8
- export type Material = {
9
- id: string;
10
- materialGroupId?: string | null;
11
- type: string;
12
- desc: string;
13
- path: string;
14
- };
15
-
16
- export class MaterialForm extends DataForm<Material> {
17
- constructor(options: DataFormOptions = {}) {
18
- super({ name: "ms-material", ...options });
19
- }
20
-
21
- protected async initialize() {
22
- this.setColumns([
23
- new FormColumn({ name: "id", label: "编号" }),
24
- new FormColumn({ name: "type", label: "类型" }),
25
- new FormColumn({ name: "desc", label: "描述" }),
26
- new FormColumn({ name: "path", label: "路径" }),
27
- ]);
28
- }
29
-
30
- formatItem(item: Material): Material {
31
- return {
32
- id: item.id,
33
- materialGroupId: item.materialGroupId ?? null,
34
- type: item.type || "string",
35
- desc: item.desc,
36
- path: item.path,
37
- };
38
- }
39
-
40
- formatSubmitData(data: any) {
41
- return {
42
- id: data.id,
43
- materialGroupId: data.materialGroupId,
44
- type: data.type,
45
- desc: data.desc,
46
- path: data.path,
47
- };
48
- }
49
- }
50
-
51
- defineDataForm(MaterialForm);
@@ -1,176 +0,0 @@
1
- import { Group } from "@maketribe/request";
2
- import { IComponents, WhereFilter } from "@maketribe/dm";
3
- import { MaterialTable, MaterialType } from "./MaterialTable";
4
- import {
5
- MaterialGroup,
6
- MaterialGroupNode,
7
- MaterialGroupTable,
8
- } from "./material-group";
9
- import { UploadError, WebFileUpload, HttpRequest } from "@maketribe/request";
10
- import { MaterialForm } from "./MaterialForm";
11
-
12
- export type MaterialManOptions = {
13
- components: IComponents;
14
- httpRequest?: HttpRequest;
15
- };
16
-
17
- export class MaterialMan {
18
- currentMaterialGroupId: MaterialGroup["id"] | null;
19
- currentMaterialTypeId: MaterialType["value"] | null;
20
-
21
- materialTypes: MaterialType[] = [];
22
-
23
- materialGroupTable: MaterialGroupTable;
24
- materialTable: MaterialTable;
25
- materialForm: MaterialForm;
26
-
27
- protected initing: boolean = false;
28
- protected initd: boolean = false;
29
-
30
- upload: WebFileUpload;
31
-
32
- protected materialConditionGroup: Group;
33
-
34
- get currentMaterialType() {
35
- return (
36
- this.materialTypes.find(
37
- (materialType) => materialType.value === this.currentMaterialTypeId
38
- ) ?? null
39
- );
40
- }
41
-
42
- constructor(options: MaterialManOptions) {
43
- this.materialGroupTable = new MaterialGroupTable();
44
- this.materialTable = new MaterialTable({
45
- materialComponents: options.components,
46
- });
47
- this.materialForm = new MaterialForm();
48
-
49
- this.materialConditionGroup = new Group();
50
-
51
- (this.materialTable.dataFilter as WhereFilter)
52
- .getWhere()
53
- .addGroup(this.materialConditionGroup);
54
-
55
- this.materialGroupTable.dataFilter.setReady();
56
- this.materialTable.dataFilter.setReady();
57
-
58
- this.upload = new WebFileUpload({
59
- filters: [
60
- (file) => {
61
- if (!this.currentMaterialType) {
62
- throw new UploadError("不能上传文件,素材类型无效");
63
- }
64
-
65
- if (this.currentMaterialType.limit * 1024 * 1024 < file.size) {
66
- throw new UploadError("文件太大不能上传");
67
- }
68
- },
69
- ],
70
- httpRequest: options.httpRequest,
71
- });
72
-
73
- this.currentMaterialGroupId = null;
74
- this.currentMaterialTypeId = null;
75
- }
76
-
77
- async init() {
78
- if (this.initing || this.initd) {
79
- return;
80
- }
81
- this.initing = true;
82
-
83
- this.upload.uploadEvent.on(({ uploadItem }) => {
84
- uploadItem.completeEvent.once(async () => {
85
- await this.materialForm.addRecord();
86
-
87
- this.materialForm.setData({
88
- id: "",
89
- materialGroupId: this.currentMaterialGroupId,
90
- type: this.currentMaterialTypeId!,
91
- desc: uploadItem.payload.name,
92
- path: uploadItem.response!.data.data.path,
93
- });
94
-
95
- const submitResullt = await this.materialForm.submit();
96
-
97
- if (submitResullt.data.code !== 200) {
98
- return;
99
- }
100
-
101
- this.materialTable.load();
102
- });
103
- });
104
-
105
- await this.materialGroupTable.init();
106
- await this.materialGroupTable.load();
107
-
108
- await this.materialForm.init();
109
-
110
- const getFirstMaterialGroupNode = (
111
- materialGroupNodes: MaterialGroupNode[]
112
- ): MaterialGroupNode => {
113
- if (materialGroupNodes[0].children.length) {
114
- return getFirstMaterialGroupNode(materialGroupNodes[0].children);
115
- }
116
-
117
- return materialGroupNodes[0];
118
- };
119
-
120
- const materialGroupList = this.materialGroupTable.getList();
121
-
122
- if (!materialGroupList.length) {
123
- return;
124
- }
125
-
126
- this.currentMaterialGroupId =
127
- getFirstMaterialGroupNode(materialGroupList).id;
128
-
129
- await this.materialTable.init();
130
-
131
- this.materialTypes = this.materialTable.getMaterialTypes();
132
-
133
- if (this.materialTypes.length) {
134
- this.currentMaterialTypeId = this.materialTypes[0].value;
135
- }
136
-
137
- this.attachMaterialTableCondition();
138
-
139
- this.initing = false;
140
- this.initd = true;
141
- }
142
-
143
- setCurrentMaterialGroupId(materialGoupId: MaterialGroupNode["id"] | null) {
144
- this.currentMaterialGroupId = materialGoupId;
145
-
146
- this.attachMaterialTableCondition();
147
- }
148
-
149
- setCurrentMaterialTypeId(materialTypeId: MaterialType["value"] | null) {
150
- this.currentMaterialTypeId = materialTypeId;
151
-
152
- this.attachMaterialTableCondition();
153
- }
154
-
155
- protected attachMaterialTableCondition() {
156
- this.materialConditionGroup.clear();
157
-
158
- if (this.currentMaterialGroupId) {
159
- this.materialConditionGroup.addCondition(
160
- "materialGroupId",
161
- "=",
162
- this.currentMaterialGroupId
163
- );
164
- }
165
-
166
- if (this.currentMaterialTypeId) {
167
- this.materialConditionGroup.addCondition(
168
- "type",
169
- "=",
170
- this.currentMaterialTypeId
171
- );
172
- }
173
-
174
- this.materialTable.load();
175
- }
176
- }
@@ -1,123 +0,0 @@
1
- import {
2
- Component,
3
- DataTable,
4
- DataTableOptions,
5
- IComponents,
6
- TableColumn,
7
- defineDataTable,
8
- } from "@maketribe/dm";
9
- import { Material } from "./MaterialForm";
10
- import { ConfigTable } from "../config";
11
- import { ITypeResolver } from "../../resolver/ITypeResolver";
12
-
13
- export type MaterialType = {
14
- value: string;
15
- accept: string;
16
- label: string;
17
- limit: number;
18
- };
19
-
20
- export type MaterialTableOptions = DataTableOptions & {
21
- materialComponents: IComponents;
22
- };
23
-
24
- export class MaterialTable
25
- extends DataTable<Material>
26
- implements ITypeResolver<Material>
27
- {
28
- materialTypes: MaterialType[] = [];
29
-
30
- materialComponents: IComponents;
31
-
32
- constructor(options: MaterialTableOptions) {
33
- super({ name: "ms-material", ...options });
34
-
35
- this.materialComponents = options.materialComponents;
36
- }
37
-
38
- getMaterialTypes(): MaterialType[] {
39
- return this.materialTypes;
40
- }
41
-
42
- async loadMaterialTypes() {
43
- const configResponse = await ConfigTable.loadConfig<MaterialType[]>(
44
- "ms-material-types"
45
- );
46
-
47
- if (configResponse.data.code !== 200 || !configResponse.data.data) {
48
- throw new Error();
49
- }
50
-
51
- const config = configResponse.data.data;
52
-
53
- this.materialTypes = config.value || [];
54
- }
55
-
56
- protected async initialize() {
57
- const loadingManager = this.getLoadingManager();
58
-
59
- try {
60
- loadingManager.startLoading();
61
-
62
- this.materialTypes = [
63
- { value: "1", accept: "image/*", limit: 10, label: "图片" },
64
- { value: "2", accept: "video/*", limit: 500, label: "视频" },
65
- { value: "4", accept: "*", limit: 100, label: "文档" },
66
- ];
67
-
68
- const mapping = this.materialTypes.reduce((result, item) => {
69
- result[item.value] = result.label;
70
-
71
- return result;
72
- }, {} as Record<any, any>);
73
-
74
- this.setColumns([
75
- new TableColumn({ name: "id", label: "编号", visible: false }),
76
- new TableColumn({
77
- name: "type",
78
- label: "类型",
79
- componentInfo: "MKColumnObjectMappingText",
80
- componentProps: {
81
- mapping,
82
- },
83
- }),
84
- new TableColumn({ name: "desc", label: "描述" }),
85
- new TableColumn({ name: "path", label: "路径" }),
86
- ]);
87
- } finally {
88
- loadingManager.completeLoading();
89
- }
90
- }
91
- formatItem(item: Material): Material {
92
- return {
93
- id: item.id,
94
- materialGroupId: item.materialGroupId || null,
95
- type: item.type || "string",
96
- desc: item.desc || "",
97
- path: item.path || "",
98
- };
99
- }
100
-
101
- resolveType(type: string): string {
102
- switch (type) {
103
- case "1":
104
- return "MKImageView";
105
- case "2":
106
- return "MKVideoView";
107
- case "3":
108
- return "MKAudioView";
109
- default:
110
- return "MKDocumentView";
111
- }
112
- }
113
-
114
- resolveItemType(item: Material): string {
115
- return this.resolveType(item.type);
116
- }
117
-
118
- resolveMaterialComponent(item: Material): Component | null {
119
- return this.materialComponents.resolveComponent(this.resolveItemType(item));
120
- }
121
- }
122
-
123
- defineDataTable(MaterialTable);
@@ -1,4 +0,0 @@
1
- export * from "./material-group";
2
- export * from "./MaterialForm";
3
- export * from "./MaterialTable";
4
- export * from "./MaterialMan";
@@ -1,30 +0,0 @@
1
- import {
2
- DataForm,
3
- DataFormOptions,
4
- FormColumn,
5
- defineDataForm,
6
- } from "@maketribe/dm";
7
-
8
- export type MaterialGroup = {
9
- id: string;
10
- desc: string;
11
- parentGroupId: string | null;
12
- };
13
-
14
- export class MaterialGroupForm extends DataForm<MaterialGroup> {
15
- constructor(options: DataFormOptions = {}) {
16
- super({ name: "ms-material-group", ...options });
17
- }
18
-
19
- protected async initialize() {
20
- this.setColumns([
21
- new FormColumn({ name: "desc", label: "分组名称", required: true }),
22
- new FormColumn({
23
- name: "parentGroupId",
24
- label: "父材质组ID",
25
- defaultValue: null,
26
- visible: false,
27
- }),
28
- ]);
29
- }
30
- }