@gadmin2n/schematics 0.0.65 → 0.0.67
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/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +7 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +3 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +4 -4
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +2 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/SqlModal.tsx +419 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/business/index.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/custom-avatar.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/http.ts +28 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/http.ts +87 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/index.tsx +6 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +22 -77
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/{utilities → helpers}/utils.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/AssignRolesModal.tsx +3 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageDetailDrawer.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageFormModal.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/hooks/usePageManagement.ts +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/index.ts +0 -7
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/list.tsx +110 -8
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/types.ts +1 -0
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/{permission-readme → permissionReadme}/index.tsx +4 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/ResourceDetailDrawer.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/index.ts +0 -7
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/list.tsx +32 -4
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/RoleDetailDrawer.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/modal.tsx +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/hooks/useRolePage.ts +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/index.ts +1 -8
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/list.tsx +52 -3
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/form-modal.tsx +2 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/show-drawer.tsx +2 -2
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/index.ts +1 -8
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/list.tsx +41 -11
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/tsconfig.json +2 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/yarn.lock +8321 -0
- package/package.json +1 -1
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/utils.ts +0 -76
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/create.tsx +0 -113
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/edit.tsx +0 -122
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/index.tsx +0 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/show.tsx +0 -61
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/pageResource/create.tsx +0 -113
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/pageResource/edit.tsx +0 -122
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/pageResource/index.tsx +0 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/pageResource/list.tsx +0 -243
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/pageResource/show.tsx +0 -61
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/create.tsx +0 -113
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/edit.tsx +0 -122
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/index.tsx +0 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/show.tsx +0 -61
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/create.tsx +0 -113
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/edit.tsx +0 -122
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/index.tsx +0 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/show.tsx +0 -61
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/rolePages/create.tsx +0 -113
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/rolePages/edit.tsx +0 -122
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/rolePages/index.tsx +0 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/rolePages/list.tsx +0 -243
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/rolePages/show.tsx +0 -61
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/roleResource/create.tsx +0 -113
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/roleResource/edit.tsx +0 -122
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/roleResource/index.tsx +0 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/roleResource/list.tsx +0 -243
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/roleResource/show.tsx +0 -61
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/create.tsx +0 -113
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/edit.tsx +0 -122
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/index.tsx +0 -6
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/show.tsx +0 -61
- package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/utilities/index.ts +0 -2
- /package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/{utilities → helpers}/get-name-initials.ts +0 -0
- /package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/{utilities → helpers}/get-random-color.ts +0 -0
package/package.json
CHANGED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { requestHeaders } from "helpers/login";
|
|
2
|
-
|
|
3
|
-
// Re-export Prisma helpers from react-common for backward compatibility
|
|
4
|
-
export { convertPrismaDecimal, isPrismaDecimal } from "@gadmin2n/react-common";
|
|
5
|
-
|
|
6
|
-
export function getApiUrl() {
|
|
7
|
-
return `${window.location.origin.replace("3000", "8000")}/api`;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export function trimString(str = "") {
|
|
11
|
-
// 将多种分隔符替换成\n
|
|
12
|
-
str = str.replace(/[\s,;]+/g, "\n");
|
|
13
|
-
// 去掉开头和结尾的\n
|
|
14
|
-
str = str.replace(/^\s+|\s+$/g, "");
|
|
15
|
-
|
|
16
|
-
return str;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export async function findMany<T>(
|
|
20
|
-
resource: string,
|
|
21
|
-
params: Record<string, any>
|
|
22
|
-
) {
|
|
23
|
-
const url = `${getApiUrl()}/${resource}/findMany`;
|
|
24
|
-
const res = await fetch(url, {
|
|
25
|
-
method: "POST",
|
|
26
|
-
headers: {
|
|
27
|
-
"Content-Type": "application/json",
|
|
28
|
-
...requestHeaders(),
|
|
29
|
-
},
|
|
30
|
-
// credentials: 'include',
|
|
31
|
-
body: JSON.stringify(params),
|
|
32
|
-
});
|
|
33
|
-
const data = await res.json();
|
|
34
|
-
return data.data as T[];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function getUrlParams(search = window.location.search) {
|
|
38
|
-
const hashes = search.slice(search.indexOf("?") + 1).split("&");
|
|
39
|
-
return hashes.reduce((acc, hash) => {
|
|
40
|
-
const [key, val] = hash.split("=");
|
|
41
|
-
if (val) acc[key] = decodeURIComponent(val);
|
|
42
|
-
return acc;
|
|
43
|
-
}, {} as Record<string, string>);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export interface Option {
|
|
47
|
-
value: string | number;
|
|
48
|
-
label: string;
|
|
49
|
-
children?: Option[];
|
|
50
|
-
}
|
|
51
|
-
export function transformTaskType(
|
|
52
|
-
originalData: Record<string, string>
|
|
53
|
-
): Option[] {
|
|
54
|
-
const result = new Map();
|
|
55
|
-
|
|
56
|
-
for (const [key, value] of Object.entries(originalData)) {
|
|
57
|
-
const parts = key.split("/");
|
|
58
|
-
const platform = parts[0];
|
|
59
|
-
const attribute = parts[1];
|
|
60
|
-
|
|
61
|
-
if (!result.has(platform)) {
|
|
62
|
-
result.set(platform, {
|
|
63
|
-
value: platform,
|
|
64
|
-
label: platform,
|
|
65
|
-
children: [],
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
result.get(platform).children.push({
|
|
70
|
-
value: attribute,
|
|
71
|
-
label: `${attribute}(spider_type:${value})`,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return Array.from(result.values());
|
|
76
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
FieldDataType,
|
|
4
|
-
handleInitialValues,
|
|
5
|
-
handleOnFinish,
|
|
6
|
-
ModelType,
|
|
7
|
-
produceModel,
|
|
8
|
-
} from '@gadmin2n/react-common';
|
|
9
|
-
import { Create, useFileUploadState, useForm } from "@refinedev/antd";
|
|
10
|
-
import { Form } from "antd";
|
|
11
|
-
import { IResourceComponentsProps, useApiUrl, useTranslate } from "@refinedev/core";
|
|
12
|
-
import React, { useContext, useState } from "react";
|
|
13
|
-
import { getFormItem, onFormValuesChange } from "../../helpers";
|
|
14
|
-
import { modelsMap, modelsEnum } from "../../generated/models.index";
|
|
15
|
-
import {
|
|
16
|
-
pageFormConfig as formConfig,
|
|
17
|
-
pageFormPrismaSelect as formPrismaSelect,
|
|
18
|
-
} from "../../generated/props/page/config";
|
|
19
|
-
import {
|
|
20
|
-
pageModel,
|
|
21
|
-
useRelation,
|
|
22
|
-
} from "../../generated/props/page/model";
|
|
23
|
-
import { Page } from "../../generated/types/prisma.types";
|
|
24
|
-
import { PageForm as transformClass } from "../../generated/props/page/form.validator";
|
|
25
|
-
import { BusinessContext } from 'components/contexts/business';
|
|
26
|
-
|
|
27
|
-
export const PageCreate: React.FC<IResourceComponentsProps> = () => {
|
|
28
|
-
const resourceName = "page";
|
|
29
|
-
const t = useTranslate();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const [[fields, model]] = useState(() => {
|
|
34
|
-
const model: ModelType = produceModel(
|
|
35
|
-
pageModel,
|
|
36
|
-
{
|
|
37
|
-
// all formItem attrs surport, https://ant.design/components/form#formitem
|
|
38
|
-
// description : { component : <MDEditor data-color-mode="light" /> },
|
|
39
|
-
// status : { normalize : (value: any) => value ? "1" : "0" },
|
|
40
|
-
// cron: {validator: { validator: runCronValidator },},
|
|
41
|
-
},
|
|
42
|
-
transformClass
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
const fields: FieldDataType[] = formConfig.fields
|
|
46
|
-
.map((fieldName: string) => model[fieldName])
|
|
47
|
-
.filter((field: FieldDataType) => field);
|
|
48
|
-
|
|
49
|
-
return [fields, model] as const;
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
const { formProps, saveButtonProps, onFinish, form } =
|
|
53
|
-
useForm<Page>({
|
|
54
|
-
meta: { select: formPrismaSelect},
|
|
55
|
-
});
|
|
56
|
-
if (formProps.initialValues || formConfig.initialValues) {
|
|
57
|
-
formProps.initialValues = handleInitialValues(
|
|
58
|
-
formProps.initialValues || formConfig.initialValues || {},
|
|
59
|
-
fields,
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const apiUrl = useApiUrl();
|
|
64
|
-
const { isLoading, onChange } = useFileUploadState();
|
|
65
|
-
const relationSelectProps = useRelation(modelsMap);
|
|
66
|
-
|
|
67
|
-
return (
|
|
68
|
-
<Create
|
|
69
|
-
saveButtonProps={{
|
|
70
|
-
...saveButtonProps,
|
|
71
|
-
disabled: isLoading,
|
|
72
|
-
}}
|
|
73
|
-
>
|
|
74
|
-
<Form
|
|
75
|
-
{...formProps}
|
|
76
|
-
validateTrigger="onBlur"
|
|
77
|
-
onFinish={(values) => {
|
|
78
|
-
onFinish(
|
|
79
|
-
handleOnFinish(
|
|
80
|
-
{
|
|
81
|
-
...values,
|
|
82
|
-
|
|
83
|
-
},
|
|
84
|
-
fields
|
|
85
|
-
)
|
|
86
|
-
);
|
|
87
|
-
}}
|
|
88
|
-
layout="vertical"
|
|
89
|
-
form={form}
|
|
90
|
-
onValuesChange={onFormValuesChange(
|
|
91
|
-
form,
|
|
92
|
-
formConfig.reaction,
|
|
93
|
-
)}
|
|
94
|
-
>
|
|
95
|
-
{fields.map((field) => {
|
|
96
|
-
return getFormItem(
|
|
97
|
-
field,
|
|
98
|
-
resourceName,
|
|
99
|
-
t,
|
|
100
|
-
form,
|
|
101
|
-
formConfig.reaction,
|
|
102
|
-
modelsEnum,
|
|
103
|
-
model,
|
|
104
|
-
apiUrl,
|
|
105
|
-
relationSelectProps,
|
|
106
|
-
onChange
|
|
107
|
-
);
|
|
108
|
-
})}
|
|
109
|
-
</Form>
|
|
110
|
-
</Create>
|
|
111
|
-
);
|
|
112
|
-
};
|
|
113
|
-
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
FieldDataType,
|
|
4
|
-
handleInitialValues,
|
|
5
|
-
handleOnFinish,
|
|
6
|
-
ModelType,
|
|
7
|
-
produceModel,
|
|
8
|
-
} from "@gadmin2n/react-common";
|
|
9
|
-
import { Edit, ListButton, RefreshButton, useFileUploadState, useForm } from "@refinedev/antd";
|
|
10
|
-
import { Form } from "antd";
|
|
11
|
-
import { IResourceComponentsProps, useApiUrl, useParsed, useTranslate } from "@refinedev/core";
|
|
12
|
-
import { getFormItem, onFormValuesChange } from "../../helpers";
|
|
13
|
-
import React, { useContext, useState } from "react";
|
|
14
|
-
|
|
15
|
-
import { modelsMap, modelsEnum } from "../../generated/models.index";
|
|
16
|
-
import {
|
|
17
|
-
pageFormConfig as formConfig,
|
|
18
|
-
pageFormPrismaSelect as formPrismaSelect,
|
|
19
|
-
} from "../../generated/props/page/config";
|
|
20
|
-
import {
|
|
21
|
-
pageModel,
|
|
22
|
-
useRelation,
|
|
23
|
-
} from "../../generated/props/page/model";
|
|
24
|
-
import { Page } from "../../generated/types/prisma.types";
|
|
25
|
-
import { PageForm as transformClass } from "../../generated/props/page/form.validator";
|
|
26
|
-
import { BusinessContext } from 'components/contexts/business';
|
|
27
|
-
|
|
28
|
-
export const PageEdit: React.FC<IResourceComponentsProps> = () => {
|
|
29
|
-
const resourceName = "page";
|
|
30
|
-
const t = useTranslate();
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const [[fields, model]] = useState(() => {
|
|
34
|
-
const model: ModelType = produceModel(
|
|
35
|
-
pageModel,
|
|
36
|
-
{
|
|
37
|
-
// all formItem attrs surport, https://ant.design/components/form#formitem
|
|
38
|
-
// description : { component : <MDEditor data-color-mode="light" /> },
|
|
39
|
-
// status : { normalize : (value: any) => value ? "1" : "0" },
|
|
40
|
-
// cron: {validator: { validator: runCronValidator },},
|
|
41
|
-
},
|
|
42
|
-
transformClass
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
const fields: FieldDataType[] = formConfig.fields
|
|
46
|
-
.map((fieldName: string) => model[fieldName])
|
|
47
|
-
.filter((field: FieldDataType) => field);
|
|
48
|
-
|
|
49
|
-
return [fields, model] as const;
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
const { formProps, saveButtonProps, onFinish, form } =
|
|
53
|
-
useForm<Page>({
|
|
54
|
-
meta: { select: formPrismaSelect},
|
|
55
|
-
});
|
|
56
|
-
formProps.initialValues = handleInitialValues(
|
|
57
|
-
formProps.initialValues || {},
|
|
58
|
-
fields
|
|
59
|
-
);
|
|
60
|
-
|
|
61
|
-
const apiUrl = useApiUrl();
|
|
62
|
-
const { isLoading, onChange } = useFileUploadState();
|
|
63
|
-
|
|
64
|
-
const relationSelectProps = useRelation(modelsMap);
|
|
65
|
-
|
|
66
|
-
return (
|
|
67
|
-
<Edit
|
|
68
|
-
saveButtonProps={{
|
|
69
|
-
...saveButtonProps,
|
|
70
|
-
disabled: isLoading,
|
|
71
|
-
}}
|
|
72
|
-
headerButtons={
|
|
73
|
-
<>
|
|
74
|
-
<ListButton />
|
|
75
|
-
<RefreshButton
|
|
76
|
-
meta={{ select: formPrismaSelect}}
|
|
77
|
-
/>
|
|
78
|
-
</>
|
|
79
|
-
}
|
|
80
|
-
>
|
|
81
|
-
<Form
|
|
82
|
-
{...formProps}
|
|
83
|
-
validateTrigger="onBlur"
|
|
84
|
-
onFinish={(values) => {
|
|
85
|
-
onFinish(
|
|
86
|
-
handleOnFinish(
|
|
87
|
-
{
|
|
88
|
-
...values,
|
|
89
|
-
|
|
90
|
-
id: undefined,
|
|
91
|
-
},
|
|
92
|
-
fields,
|
|
93
|
-
"edit"
|
|
94
|
-
)
|
|
95
|
-
);
|
|
96
|
-
}}
|
|
97
|
-
layout="vertical"
|
|
98
|
-
form={form}
|
|
99
|
-
onValuesChange={onFormValuesChange(
|
|
100
|
-
form,
|
|
101
|
-
formConfig.reaction,
|
|
102
|
-
)}
|
|
103
|
-
>
|
|
104
|
-
{fields.map((field) => {
|
|
105
|
-
return getFormItem(
|
|
106
|
-
field,
|
|
107
|
-
resourceName,
|
|
108
|
-
t,
|
|
109
|
-
form,
|
|
110
|
-
formConfig.reaction,
|
|
111
|
-
modelsEnum,
|
|
112
|
-
model,
|
|
113
|
-
apiUrl,
|
|
114
|
-
relationSelectProps,
|
|
115
|
-
onChange
|
|
116
|
-
);
|
|
117
|
-
})}
|
|
118
|
-
</Form>
|
|
119
|
-
</Edit>
|
|
120
|
-
);
|
|
121
|
-
};
|
|
122
|
-
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { ModelType, getColumns, produceModel } from "@gadmin2n/react-common";
|
|
3
|
-
import { CloneButton, DeleteButton, EditButton, ListButton, RefreshButton, Show } from "@refinedev/antd";
|
|
4
|
-
import { IResourceComponentsProps, useShow, useTranslate } from "@refinedev/core";
|
|
5
|
-
import React, { useState } from "react";
|
|
6
|
-
import { getShowField } from "../../helpers";
|
|
7
|
-
import type { Page } from "../../generated/types/prisma.types"; //'.prisma/client/index';
|
|
8
|
-
import {
|
|
9
|
-
pageShowConfig as showConfig,
|
|
10
|
-
pageShowPrismaSelect as showPrismaSelect,
|
|
11
|
-
} from "../../generated/props/page/config";
|
|
12
|
-
import { pageModel } from "../../generated/props/page/model";
|
|
13
|
-
import { modelsMap } from "generated/models.index";
|
|
14
|
-
|
|
15
|
-
export const PageShow: React.FC<IResourceComponentsProps> = () => {
|
|
16
|
-
const resourceName = "page";
|
|
17
|
-
const t = useTranslate();
|
|
18
|
-
|
|
19
|
-
const { queryResult } = useShow<Page>({
|
|
20
|
-
meta: { select: showPrismaSelect},
|
|
21
|
-
});
|
|
22
|
-
const { data, isLoading } = queryResult;
|
|
23
|
-
const record = data?.data;
|
|
24
|
-
|
|
25
|
-
const [[fields, model]] = useState(() => {
|
|
26
|
-
const model: ModelType = produceModel(pageModel, {
|
|
27
|
-
// status: { render: xxxxx }
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
// getColumns is a function that returns an array of fields
|
|
31
|
-
const fields = getColumns("Page", showConfig.fields, {
|
|
32
|
-
...modelsMap,
|
|
33
|
-
Page: { model, meta: modelsMap["Page"].meta },
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
return [fields, model] as const;
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<Show
|
|
41
|
-
isLoading={isLoading}
|
|
42
|
-
headerButtons={
|
|
43
|
-
<>
|
|
44
|
-
<ListButton/>
|
|
45
|
-
<EditButton recordItemId={record?.id} />
|
|
46
|
-
<CloneButton recordItemId={record?.id} />
|
|
47
|
-
<DeleteButton recordItemId={record?.id} />
|
|
48
|
-
<RefreshButton
|
|
49
|
-
recordItemId={record?.id}
|
|
50
|
-
meta={{ select: showPrismaSelect}}
|
|
51
|
-
/>
|
|
52
|
-
</>
|
|
53
|
-
}
|
|
54
|
-
>
|
|
55
|
-
{fields.map((field: any) => {
|
|
56
|
-
return getShowField(field, resourceName, record, t, model, modelsMap);
|
|
57
|
-
})}
|
|
58
|
-
</Show>
|
|
59
|
-
);
|
|
60
|
-
};
|
|
61
|
-
|
package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/pageResource/create.tsx
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
FieldDataType,
|
|
4
|
-
handleInitialValues,
|
|
5
|
-
handleOnFinish,
|
|
6
|
-
ModelType,
|
|
7
|
-
produceModel,
|
|
8
|
-
} from '@gadmin2n/react-common';
|
|
9
|
-
import { Create, useFileUploadState, useForm } from "@refinedev/antd";
|
|
10
|
-
import { Form } from "antd";
|
|
11
|
-
import { IResourceComponentsProps, useApiUrl, useTranslate } from "@refinedev/core";
|
|
12
|
-
import React, { useContext, useState } from "react";
|
|
13
|
-
import { getFormItem, onFormValuesChange } from "../../helpers";
|
|
14
|
-
import { modelsMap, modelsEnum } from "../../generated/models.index";
|
|
15
|
-
import {
|
|
16
|
-
pageResourceFormConfig as formConfig,
|
|
17
|
-
pageResourceFormPrismaSelect as formPrismaSelect,
|
|
18
|
-
} from "../../generated/props/pageResource/config";
|
|
19
|
-
import {
|
|
20
|
-
pageResourceModel,
|
|
21
|
-
useRelation,
|
|
22
|
-
} from "../../generated/props/pageResource/model";
|
|
23
|
-
import { PageResource } from "../../generated/types/prisma.types";
|
|
24
|
-
import { PageResourceForm as transformClass } from "../../generated/props/pageResource/form.validator";
|
|
25
|
-
import { BusinessContext } from 'components/contexts/business';
|
|
26
|
-
|
|
27
|
-
export const PageResourceCreate: React.FC<IResourceComponentsProps> = () => {
|
|
28
|
-
const resourceName = "pageResource";
|
|
29
|
-
const t = useTranslate();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const [[fields, model]] = useState(() => {
|
|
34
|
-
const model: ModelType = produceModel(
|
|
35
|
-
pageResourceModel,
|
|
36
|
-
{
|
|
37
|
-
// all formItem attrs surport, https://ant.design/components/form#formitem
|
|
38
|
-
// description : { component : <MDEditor data-color-mode="light" /> },
|
|
39
|
-
// status : { normalize : (value: any) => value ? "1" : "0" },
|
|
40
|
-
// cron: {validator: { validator: runCronValidator },},
|
|
41
|
-
},
|
|
42
|
-
transformClass
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
const fields: FieldDataType[] = formConfig.fields
|
|
46
|
-
.map((fieldName: string) => model[fieldName])
|
|
47
|
-
.filter((field: FieldDataType) => field);
|
|
48
|
-
|
|
49
|
-
return [fields, model] as const;
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
const { formProps, saveButtonProps, onFinish, form } =
|
|
53
|
-
useForm<PageResource>({
|
|
54
|
-
meta: { select: formPrismaSelect},
|
|
55
|
-
});
|
|
56
|
-
if (formProps.initialValues || formConfig.initialValues) {
|
|
57
|
-
formProps.initialValues = handleInitialValues(
|
|
58
|
-
formProps.initialValues || formConfig.initialValues || {},
|
|
59
|
-
fields,
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const apiUrl = useApiUrl();
|
|
64
|
-
const { isLoading, onChange } = useFileUploadState();
|
|
65
|
-
const relationSelectProps = useRelation(modelsMap);
|
|
66
|
-
|
|
67
|
-
return (
|
|
68
|
-
<Create
|
|
69
|
-
saveButtonProps={{
|
|
70
|
-
...saveButtonProps,
|
|
71
|
-
disabled: isLoading,
|
|
72
|
-
}}
|
|
73
|
-
>
|
|
74
|
-
<Form
|
|
75
|
-
{...formProps}
|
|
76
|
-
validateTrigger="onBlur"
|
|
77
|
-
onFinish={(values) => {
|
|
78
|
-
onFinish(
|
|
79
|
-
handleOnFinish(
|
|
80
|
-
{
|
|
81
|
-
...values,
|
|
82
|
-
|
|
83
|
-
},
|
|
84
|
-
fields
|
|
85
|
-
)
|
|
86
|
-
);
|
|
87
|
-
}}
|
|
88
|
-
layout="vertical"
|
|
89
|
-
form={form}
|
|
90
|
-
onValuesChange={onFormValuesChange(
|
|
91
|
-
form,
|
|
92
|
-
formConfig.reaction,
|
|
93
|
-
)}
|
|
94
|
-
>
|
|
95
|
-
{fields.map((field) => {
|
|
96
|
-
return getFormItem(
|
|
97
|
-
field,
|
|
98
|
-
resourceName,
|
|
99
|
-
t,
|
|
100
|
-
form,
|
|
101
|
-
formConfig.reaction,
|
|
102
|
-
modelsEnum,
|
|
103
|
-
model,
|
|
104
|
-
apiUrl,
|
|
105
|
-
relationSelectProps,
|
|
106
|
-
onChange
|
|
107
|
-
);
|
|
108
|
-
})}
|
|
109
|
-
</Form>
|
|
110
|
-
</Create>
|
|
111
|
-
);
|
|
112
|
-
};
|
|
113
|
-
|
package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/pageResource/edit.tsx
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
FieldDataType,
|
|
4
|
-
handleInitialValues,
|
|
5
|
-
handleOnFinish,
|
|
6
|
-
ModelType,
|
|
7
|
-
produceModel,
|
|
8
|
-
} from "@gadmin2n/react-common";
|
|
9
|
-
import { Edit, ListButton, RefreshButton, useFileUploadState, useForm } from "@refinedev/antd";
|
|
10
|
-
import { Form } from "antd";
|
|
11
|
-
import { IResourceComponentsProps, useApiUrl, useParsed, useTranslate } from "@refinedev/core";
|
|
12
|
-
import { getFormItem, onFormValuesChange } from "../../helpers";
|
|
13
|
-
import React, { useContext, useState } from "react";
|
|
14
|
-
|
|
15
|
-
import { modelsMap, modelsEnum } from "../../generated/models.index";
|
|
16
|
-
import {
|
|
17
|
-
pageResourceFormConfig as formConfig,
|
|
18
|
-
pageResourceFormPrismaSelect as formPrismaSelect,
|
|
19
|
-
} from "../../generated/props/pageResource/config";
|
|
20
|
-
import {
|
|
21
|
-
pageResourceModel,
|
|
22
|
-
useRelation,
|
|
23
|
-
} from "../../generated/props/pageResource/model";
|
|
24
|
-
import { PageResource } from "../../generated/types/prisma.types";
|
|
25
|
-
import { PageResourceForm as transformClass } from "../../generated/props/pageResource/form.validator";
|
|
26
|
-
import { BusinessContext } from 'components/contexts/business';
|
|
27
|
-
|
|
28
|
-
export const PageResourceEdit: React.FC<IResourceComponentsProps> = () => {
|
|
29
|
-
const resourceName = "pageResource";
|
|
30
|
-
const t = useTranslate();
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const [[fields, model]] = useState(() => {
|
|
34
|
-
const model: ModelType = produceModel(
|
|
35
|
-
pageResourceModel,
|
|
36
|
-
{
|
|
37
|
-
// all formItem attrs surport, https://ant.design/components/form#formitem
|
|
38
|
-
// description : { component : <MDEditor data-color-mode="light" /> },
|
|
39
|
-
// status : { normalize : (value: any) => value ? "1" : "0" },
|
|
40
|
-
// cron: {validator: { validator: runCronValidator },},
|
|
41
|
-
},
|
|
42
|
-
transformClass
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
const fields: FieldDataType[] = formConfig.fields
|
|
46
|
-
.map((fieldName: string) => model[fieldName])
|
|
47
|
-
.filter((field: FieldDataType) => field);
|
|
48
|
-
|
|
49
|
-
return [fields, model] as const;
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
const { formProps, saveButtonProps, onFinish, form } =
|
|
53
|
-
useForm<PageResource>({
|
|
54
|
-
meta: { select: formPrismaSelect},
|
|
55
|
-
});
|
|
56
|
-
formProps.initialValues = handleInitialValues(
|
|
57
|
-
formProps.initialValues || {},
|
|
58
|
-
fields
|
|
59
|
-
);
|
|
60
|
-
|
|
61
|
-
const apiUrl = useApiUrl();
|
|
62
|
-
const { isLoading, onChange } = useFileUploadState();
|
|
63
|
-
|
|
64
|
-
const relationSelectProps = useRelation(modelsMap);
|
|
65
|
-
|
|
66
|
-
return (
|
|
67
|
-
<Edit
|
|
68
|
-
saveButtonProps={{
|
|
69
|
-
...saveButtonProps,
|
|
70
|
-
disabled: isLoading,
|
|
71
|
-
}}
|
|
72
|
-
headerButtons={
|
|
73
|
-
<>
|
|
74
|
-
<ListButton />
|
|
75
|
-
<RefreshButton
|
|
76
|
-
meta={{ select: formPrismaSelect}}
|
|
77
|
-
/>
|
|
78
|
-
</>
|
|
79
|
-
}
|
|
80
|
-
>
|
|
81
|
-
<Form
|
|
82
|
-
{...formProps}
|
|
83
|
-
validateTrigger="onBlur"
|
|
84
|
-
onFinish={(values) => {
|
|
85
|
-
onFinish(
|
|
86
|
-
handleOnFinish(
|
|
87
|
-
{
|
|
88
|
-
...values,
|
|
89
|
-
|
|
90
|
-
id: undefined,
|
|
91
|
-
},
|
|
92
|
-
fields,
|
|
93
|
-
"edit"
|
|
94
|
-
)
|
|
95
|
-
);
|
|
96
|
-
}}
|
|
97
|
-
layout="vertical"
|
|
98
|
-
form={form}
|
|
99
|
-
onValuesChange={onFormValuesChange(
|
|
100
|
-
form,
|
|
101
|
-
formConfig.reaction,
|
|
102
|
-
)}
|
|
103
|
-
>
|
|
104
|
-
{fields.map((field) => {
|
|
105
|
-
return getFormItem(
|
|
106
|
-
field,
|
|
107
|
-
resourceName,
|
|
108
|
-
t,
|
|
109
|
-
form,
|
|
110
|
-
formConfig.reaction,
|
|
111
|
-
modelsEnum,
|
|
112
|
-
model,
|
|
113
|
-
apiUrl,
|
|
114
|
-
relationSelectProps,
|
|
115
|
-
onChange
|
|
116
|
-
);
|
|
117
|
-
})}
|
|
118
|
-
</Form>
|
|
119
|
-
</Edit>
|
|
120
|
-
);
|
|
121
|
-
};
|
|
122
|
-
|
package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/pageResource/index.tsx
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// Stub - this module has been integrated into page management
|
|
2
|
-
const EmptyComponent = () => null;
|
|
3
|
-
export const PageResourceCreate = EmptyComponent;
|
|
4
|
-
export const PageResourceEdit = EmptyComponent;
|
|
5
|
-
export const PageResourceList = EmptyComponent;
|
|
6
|
-
export const PageResourceShow = EmptyComponent;
|