@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.
- package/dist/cjs/MSAppClient.js +12 -18
- package/dist/cjs/MSAppClient.js.map +1 -1
- package/dist/cjs/Router.js +6 -8
- package/dist/cjs/Router.js.map +1 -1
- package/dist/cjs/components/member-table/member-table.vue2.js +2 -10
- package/dist/cjs/components/member-table/member-table.vue2.js.map +1 -1
- package/dist/cjs/components/verify-dialog/verify-dialog.js +1 -24
- package/dist/cjs/components/verify-dialog/verify-dialog.js.map +1 -1
- package/dist/cjs/init-application.js +8 -1
- package/dist/cjs/init-application.js.map +1 -1
- package/dist/cjs/page/index/dv/default/add.vue.js +2 -2
- package/dist/cjs/page/index/dv/default/edit.vue.js +2 -2
- package/dist/cjs/page/index/dv/default/tree.vue.js +2 -2
- package/dist/cjs/page/index/dv/ms-member/index.vue.js +2 -2
- package/dist/cjs/page/index/dv/ms-role/index.vue.js +2 -2
- package/dist/cjs/page/index/material/index.vue.js +2 -2
- package/dist/cjs/page/login/index.vue.js +2 -2
- package/dist/cjs/page/login/index.vue2.js +2 -17
- package/dist/cjs/page/login/index.vue2.js.map +1 -1
- package/dist/cjs/page/signup/index.vue.js +2 -2
- package/dist/cjs/page/signup/index.vue2.js +2 -18
- package/dist/cjs/page/signup/index.vue2.js.map +1 -1
- package/dist/cjs/router-middleware/auth.d.ts +2 -1
- package/dist/cjs/router-middleware/auth.js +1 -3
- package/dist/cjs/router-middleware/auth.js.map +1 -1
- package/dist/esm/MSAppClient.js +11 -19
- package/dist/esm/MSAppClient.js.map +1 -1
- package/dist/esm/Router.js +4 -8
- package/dist/esm/Router.js.map +1 -1
- package/dist/esm/components/member-table/member-table.vue2.js +2 -10
- package/dist/esm/components/member-table/member-table.vue2.js.map +1 -1
- package/dist/esm/components/verify-dialog/verify-dialog.js +1 -24
- package/dist/esm/components/verify-dialog/verify-dialog.js.map +1 -1
- package/dist/esm/init-application.js +8 -1
- package/dist/esm/init-application.js.map +1 -1
- package/dist/esm/page/index/dv/default/add.vue.js +2 -2
- package/dist/esm/page/index/dv/default/edit.vue.js +2 -2
- package/dist/esm/page/index/dv/default/tree.vue.js +2 -2
- package/dist/esm/page/index/dv/ms-member/index.vue.js +2 -2
- package/dist/esm/page/index/dv/ms-role/index.vue.js +2 -2
- package/dist/esm/page/index/material/index.vue.js +2 -2
- package/dist/esm/page/login/index.vue.js +2 -2
- package/dist/esm/page/login/index.vue2.js +2 -17
- package/dist/esm/page/login/index.vue2.js.map +1 -1
- package/dist/esm/page/signup/index.vue.js +2 -2
- package/dist/esm/page/signup/index.vue2.js +2 -18
- package/dist/esm/page/signup/index.vue2.js.map +1 -1
- package/dist/esm/router-middleware/auth.d.ts +2 -1
- package/dist/esm/router-middleware/auth.js +1 -3
- package/dist/esm/router-middleware/auth.js.map +1 -1
- package/package.json +8 -5
- package/gulpfile.ts +0 -1
- package/rollup.config.mjs +0 -11
- package/src/ConfigComponents.ts +0 -20
- package/src/MSAppClient.ts +0 -343
- package/src/MSDataFilterComponents.ts +0 -6
- package/src/MSDataFormComponents.ts +0 -12
- package/src/MSDataTableComponents.ts +0 -6
- package/src/MaterialComponents.ts +0 -26
- package/src/PermissionPointManager.ts +0 -26
- package/src/Router.ts +0 -133
- package/src/UserInfo.ts +0 -66
- package/src/UserSession.ts +0 -190
- package/src/components/image-select/image-select-option.ts +0 -11
- package/src/components/image-select/image-select.tsx +0 -40
- package/src/components/image-select/index.ts +0 -6
- package/src/components/index.ts +0 -8
- package/src/components/material-list/index.ts +0 -7
- package/src/components/material-list/material-group-form-popover.vue +0 -66
- package/src/components/material-list/material-group.vue +0 -138
- package/src/components/material-list/material-item.vue +0 -26
- package/src/components/material-list/material-list-options.ts +0 -23
- package/src/components/material-list/material-list.vue +0 -151
- package/src/components/material-select/index.ts +0 -15
- package/src/components/material-select/material-select-api.ts +0 -48
- package/src/components/material-select/material-select-options.ts +0 -18
- package/src/components/material-select/material-select-type.ts +0 -11
- package/src/components/material-select/material-select.tsx +0 -95
- package/src/components/member-table/index.ts +0 -6
- package/src/components/member-table/member-table.vue +0 -220
- package/src/components/menu-permission-table/index.ts +0 -6
- package/src/components/menu-permission-table/menu-permission-table.vue +0 -143
- package/src/components/role-permission-config/index.ts +0 -7
- package/src/components/role-permission-config/role-permission-config-options.ts +0 -20
- package/src/components/role-permission-config/role-permission-config.tsx +0 -280
- package/src/components/system-provider/index.ts +0 -5
- package/src/components/system-provider/system-provider.tsx +0 -93
- package/src/components/verify-dialog/index.ts +0 -5
- package/src/components/verify-dialog/verify-dialog-option.ts +0 -23
- package/src/components/verify-dialog/verify-dialog.tsx +0 -113
- package/src/composables/index.ts +0 -13
- package/src/composables/on-tab-before-close.ts +0 -8
- package/src/composables/on-tab-before-switch.ts +0 -8
- package/src/composables/on-tab-refresh.ts +0 -8
- package/src/composables/use-current-tab.ts +0 -5
- package/src/composables/use-http-request.ts +0 -5
- package/src/composables/use-ms-app-client.ts +0 -10
- package/src/composables/use-user-info.ts +0 -4
- package/src/constants/index.ts +0 -2
- package/src/constants/route.ts +0 -4
- package/src/constants/token.ts +0 -5
- package/src/dataview/config/ConfigForm.ts +0 -110
- package/src/dataview/config/ConfigTable.ts +0 -68
- package/src/dataview/config/index.ts +0 -2
- package/src/dataview/department/DepartmentForm.ts +0 -43
- package/src/dataview/department/DepartmentTable.ts +0 -67
- package/src/dataview/department/index.ts +0 -2
- package/src/dataview/index.ts +0 -7
- package/src/dataview/material/MaterialForm.ts +0 -51
- package/src/dataview/material/MaterialMan.ts +0 -176
- package/src/dataview/material/MaterialTable.ts +0 -123
- package/src/dataview/material/index.ts +0 -4
- package/src/dataview/material/material-group/MaterialGroupForm.ts +0 -30
- package/src/dataview/material/material-group/MaterialGroupTable.ts +0 -60
- package/src/dataview/material/material-group/index.ts +0 -2
- package/src/dataview/member/MemberForm.ts +0 -122
- package/src/dataview/member/MemberTable.tsx +0 -242
- package/src/dataview/member/index.ts +0 -2
- package/src/dataview/member/member-role/MemberRoleTable.ts +0 -21
- package/src/dataview/menu/MenuForm.ts +0 -113
- package/src/dataview/menu/MenuTable.ts +0 -37
- package/src/dataview/menu/MenuTree.ts +0 -143
- package/src/dataview/menu/index.ts +0 -4
- package/src/dataview/menu/permission-point/PermissionPointDefineForm.ts +0 -28
- package/src/dataview/menu/permission-point/PermissionPointDefineTable.ts +0 -30
- package/src/dataview/menu/permission-point/index.ts +0 -2
- package/src/dataview/role/RoleForm.ts +0 -36
- package/src/dataview/role/RolePermissionConfigTable.ts +0 -471
- package/src/dataview/role/RoleTable.ts +0 -68
- package/src/dataview/role/index.ts +0 -5
- package/src/dataview/role/role-permission-point/RolePermissionPointTable.ts +0 -27
- package/src/dataview/role/role-permission-point/index.ts +0 -1
- package/src/dataview/role/role-route/RoleRouteTable.ts +0 -28
- package/src/dataview/role/role-route/index.ts +0 -1
- package/src/dataview/route/RouteForm.ts +0 -92
- package/src/dataview/route/RouteTable.ts +0 -71
- package/src/dataview/route/index.ts +0 -2
- package/src/init-application.ts +0 -84
- package/src/installer.ts +0 -26
- package/src/layouts/index.ts +0 -1
- package/src/layouts/manager-system/components/aside/aside.tsx +0 -45
- package/src/layouts/manager-system/components/aside/bar/bar.tsx +0 -79
- package/src/layouts/manager-system/components/aside/bar/index.ts +0 -5
- package/src/layouts/manager-system/components/aside/index.ts +0 -5
- package/src/layouts/manager-system/components/aside/menu/index.ts +0 -5
- package/src/layouts/manager-system/components/aside/menu/menu-item.tsx +0 -63
- package/src/layouts/manager-system/components/aside/menu/menu.tsx +0 -51
- package/src/layouts/manager-system/components/aside/panel/index.ts +0 -5
- package/src/layouts/manager-system/components/aside/panel/panel.tsx +0 -57
- package/src/layouts/manager-system/components/header/breadcrumb/breadcrumb.tsx +0 -47
- package/src/layouts/manager-system/components/header/breadcrumb/index.ts +0 -5
- package/src/layouts/manager-system/components/header/header.tsx +0 -17
- package/src/layouts/manager-system/components/header/index.ts +0 -5
- package/src/layouts/manager-system/components/header/nav/index.ts +0 -5
- package/src/layouts/manager-system/components/header/nav/nav.tsx +0 -100
- package/src/layouts/manager-system/components/header/tabs/index.ts +0 -5
- package/src/layouts/manager-system/components/header/tabs/tabs.tsx +0 -72
- package/src/layouts/manager-system/components/header/tools/index.ts +0 -5
- package/src/layouts/manager-system/components/header/tools/tools.tsx +0 -15
- package/src/layouts/manager-system/index.ts +0 -6
- package/src/layouts/manager-system/manager-system.tsx +0 -25
- package/src/menu/Menu.ts +0 -142
- package/src/menu/MenuNode.ts +0 -49
- package/src/menu/index.ts +0 -2
- package/src/page/index/dv/default/add.vue +0 -49
- package/src/page/index/dv/default/edit.vue +0 -55
- package/src/page/index/dv/default/index.vue +0 -56
- package/src/page/index/dv/default/tree.vue +0 -31
- package/src/page/index/dv/ms-member/index.vue +0 -38
- package/src/page/index/dv/ms-role/index.vue +0 -28
- package/src/page/index/material/index.vue +0 -14
- package/src/page/login/index.vue +0 -191
- package/src/page/signup/index.vue +0 -157
- package/src/resolver/ITypeResolver.ts +0 -5
- package/src/router-middleware/auth.ts +0 -64
- package/src/router-middleware/index.ts +0 -1
- package/src/tabs/Tab.ts +0 -59
- package/src/tabs/Tabs.ts +0 -176
- package/src/tabs/index.ts +0 -2
- package/src/tokens/index.ts +0 -1
- package/src/tokens/ms-app-client.ts +0 -10
- package/style/components/image-select.scss +0 -13
- package/style/components/index.scss +0 -9
- package/style/components/material-group.scss +0 -38
- package/style/components/material-item.scss +0 -20
- package/style/components/material-list.scss +0 -67
- package/style/components/material-select.scss +0 -23
- package/style/components/member-table.scss +0 -9
- package/style/components/menu-permission-table.scss +0 -43
- package/style/components/role-permission-config.scss +0 -18
- package/style/components/verify-dialog.scss +0 -16
- package/style/index.scss +0 -4
- package/style/layouts/index.scss +0 -1
- package/style/layouts/manager-system/aside.scss +0 -116
- package/style/layouts/manager-system/header.scss +0 -129
- package/style/layouts/manager-system/index.scss +0 -4
- package/style/layouts/manager-system/manager-system.scss +0 -26
- package/style/layouts/manager-system/menu.scss +0 -47
- package/style/page/login.scss +0 -107
- package/tsconfig.build.json +0 -10
- 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,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);
|
package/src/dataview/index.ts
DELETED
|
@@ -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,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
|
-
}
|