@cfmm/umi-plugins-ui-v2 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/CrudTable.tpl +54 -15
- package/dist/cjs/components/EditMultiLangForm.tpl +1 -1
- package/dist/cjs/components/PermissionSelect.tpl +29 -17
- package/dist/cjs/services/index.tpl +4 -4
- package/dist/cjs/types/CrudTableTypes.d.ts +1 -1
- package/dist/cjs/types/CrudTableTypes.js +1 -1
- package/dist/cjs/types/EditMultiLangFormTypes.d.ts +1 -1
- package/dist/cjs/types/EditMultiLangFormTypes.js +1 -1
- package/dist/cjs/types/PermissionSelectTypes.d.ts +1 -1
- package/dist/cjs/types/PermissionSelectTypes.js +1 -1
- package/dist/esm/components/CrudTable.tpl +54 -15
- package/dist/esm/components/EditMultiLangForm.tpl +1 -1
- package/dist/esm/components/PermissionSelect.tpl +29 -17
- package/dist/esm/services/index.tpl +4 -4
- package/dist/esm/types/CrudTableTypes.d.ts +1 -1
- package/dist/esm/types/CrudTableTypes.js +1 -1
- package/dist/esm/types/EditMultiLangFormTypes.d.ts +1 -1
- package/dist/esm/types/EditMultiLangFormTypes.js +1 -1
- package/dist/esm/types/PermissionSelectTypes.d.ts +1 -1
- package/dist/esm/types/PermissionSelectTypes.js +1 -1
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ import useAction from '../hooks/useAction';
|
|
|
7
7
|
import useAuthority from '../hooks/useAuthority';
|
|
8
8
|
import useMemoizedFn from '../hooks/useMemoizedFn';
|
|
9
9
|
import useQueryTableList from '../hooks/useQueryTableList';
|
|
10
|
-
import { API, CrudTableConfig, CrudTableRefType,
|
|
10
|
+
import { API, CrudTableConfig, CrudTableRefType, ExportMultiLangListItem, LangInfoItem, RefDrawerFormRefType } from '../types';
|
|
11
11
|
import ActionLogDrawer from './ActionLogDrawer';
|
|
12
12
|
import CreateForm from './AddDrawerForm';
|
|
13
13
|
import DropdownButton from './DropdownButton';
|
|
@@ -15,7 +15,7 @@ import EditMultiLangForm from './EditMultiLangForm';
|
|
|
15
15
|
import MyFooterToolbar from './MyFooterToolbar';
|
|
16
16
|
import ViewTableItemDrawer from './ViewTableItemDrawer';
|
|
17
17
|
import { genExcel, genExcelAdvanced, getExportColumns, getExportValueForColumns } from '../utils/excelHelper';
|
|
18
|
-
import { importMultiLangList,
|
|
18
|
+
import { importMultiLangList, queryLangInfoExportList } from '../services';
|
|
19
19
|
import { handleImportList, showCheckErrorTips } from '../utils/importHelper';
|
|
20
20
|
|
|
21
21
|
const { confirm } = Modal;
|
|
@@ -40,7 +40,7 @@ const generateDefaultAuthCodes = (localCode: string | undefined) => {
|
|
|
40
40
|
lang: `${baseCode}_lang`,
|
|
41
41
|
templateDownload: `${baseCode}_templateDownload`,
|
|
42
42
|
import: `${baseCode}_import`,
|
|
43
|
-
|
|
43
|
+
export: `${baseCode}_export`,
|
|
44
44
|
};
|
|
45
45
|
};
|
|
46
46
|
|
|
@@ -82,6 +82,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
82
82
|
const {
|
|
83
83
|
templateDownloadModalOpenChange,
|
|
84
84
|
handleTemplateDownloadModalSearchParamsChange,
|
|
85
|
+
// @ts-ignore
|
|
85
86
|
} = window.__POWERED_BY_QIANKUN__ ? useModel('@@qiankunStateFromMaster') : useModel('global');
|
|
86
87
|
const actionRef = useRef<ActionType>();
|
|
87
88
|
const updateDrawerRef = useRef<RefDrawerFormRefType>();
|
|
@@ -132,19 +133,19 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
132
133
|
setEditLangModalOpen(true);
|
|
133
134
|
});
|
|
134
135
|
|
|
135
|
-
const queryMultiLangData = useMemoizedFn(async (tableName: string, columnName: string): Promise<
|
|
136
|
+
const queryMultiLangData = useMemoizedFn(async (tableName: string, columnName: string): Promise<ExportMultiLangListItem[]> => {
|
|
136
137
|
if (!multiLang) return [];
|
|
137
138
|
|
|
138
139
|
if (multiLang.multiLangList) {
|
|
139
140
|
return multiLang.multiLangList;
|
|
140
141
|
}
|
|
141
142
|
|
|
142
|
-
if (multiLang.
|
|
143
|
-
return await multiLang.
|
|
143
|
+
if (multiLang.queryExportMultiLangData) {
|
|
144
|
+
return await multiLang.queryExportMultiLangData(tableName, columnName);
|
|
144
145
|
}
|
|
145
146
|
|
|
146
147
|
const result = await doAction('GET', { tableName, columnName }, {
|
|
147
|
-
actionFn:
|
|
148
|
+
actionFn: queryLangInfoExportList,
|
|
148
149
|
});
|
|
149
150
|
|
|
150
151
|
if (result.success && result.data) {
|
|
@@ -202,7 +203,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
202
203
|
}
|
|
203
204
|
|
|
204
205
|
// 处理导入数据,正确赋值字段以及转格式
|
|
205
|
-
const newList = handleImportList<
|
|
206
|
+
const newList = handleImportList<ExportMultiLangListItem>(list, { needHandleUnderline: false });
|
|
206
207
|
|
|
207
208
|
// 导入校验提示
|
|
208
209
|
// const errorMessageList = checkImportExecl(newList);
|
|
@@ -622,8 +623,44 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
622
623
|
],
|
|
623
624
|
);
|
|
624
625
|
|
|
626
|
+
// 判断是布尔值还是其他值,返回布尔值判断是否显示按钮
|
|
627
|
+
const isShowButton = (buttonAuth: string | boolean | undefined): boolean => {
|
|
628
|
+
return typeof buttonAuth === 'boolean' ? buttonAuth : getAuthorityFn(buttonAuth) ?? false;
|
|
629
|
+
};
|
|
630
|
+
|
|
631
|
+
// 处理表格额外操作按钮列表
|
|
632
|
+
const handleTableButtonList = (allButtons: MenuProps['items']) => {
|
|
633
|
+
if(!allButtons?.length) return allButtons;
|
|
634
|
+
|
|
635
|
+
let renderList: MenuProps['items'] | any[] = [...(allButtons ?? [])];
|
|
636
|
+
|
|
637
|
+
// 将额外的按钮按指定位置放入渲染列表
|
|
638
|
+
if (tableProps.extraTableButtonList?.length) {
|
|
639
|
+
tableProps.extraTableButtonList.forEach((v, idx) => {
|
|
640
|
+
const item = {
|
|
641
|
+
key: typeof v.auth === 'string' ? v.auth : 'extra-' + idx,
|
|
642
|
+
label: v.label,
|
|
643
|
+
icon: v.icon,
|
|
644
|
+
auth: isShowButton(v.auth),
|
|
645
|
+
};
|
|
646
|
+
if (v.position === 'start') {
|
|
647
|
+
renderList.unshift(item);
|
|
648
|
+
}
|
|
649
|
+
if (v.position === 'end') {
|
|
650
|
+
renderList.push(item);
|
|
651
|
+
}
|
|
652
|
+
if (typeof v.position === 'number') {
|
|
653
|
+
renderList.splice(v.position, 0, item);
|
|
654
|
+
}
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
return renderList.filter((item) => item?.auth);
|
|
659
|
+
};
|
|
660
|
+
|
|
661
|
+
// 处理表格顶部操作按钮列表
|
|
625
662
|
const getBarButtons = useMemo<MenuProps['items'] | any[]>(() => {
|
|
626
|
-
|
|
663
|
+
let allButtons: MenuProps['items'] | any[] = [
|
|
627
664
|
{
|
|
628
665
|
auth: getAuthorityFn(defaultAuthCodes.add),
|
|
629
666
|
key: 'add',
|
|
@@ -662,7 +699,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
662
699
|
label: (
|
|
663
700
|
<a onClick={handleDownloadTemplate} key="templateDownload">
|
|
664
701
|
<DownloadOutlined style={{ marginRight: 6 }} />
|
|
665
|
-
{formatMessage({ id: 'cfmmUI.common.button.
|
|
702
|
+
{formatMessage({ id: 'cfmmUI.common.button.templateDownload', defaultMessage: '下载模板' })}
|
|
666
703
|
</a>
|
|
667
704
|
),
|
|
668
705
|
},
|
|
@@ -679,18 +716,20 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
679
716
|
),
|
|
680
717
|
},
|
|
681
718
|
{
|
|
682
|
-
auth: getAuthorityFn(defaultAuthCodes.
|
|
683
|
-
key: '
|
|
719
|
+
auth: getAuthorityFn(defaultAuthCodes.export),
|
|
720
|
+
key: 'export',
|
|
684
721
|
disabled: !tableList.length || loading,
|
|
685
|
-
label: <a onClick={handleDownloadExcel} key="
|
|
722
|
+
label: <a onClick={handleDownloadExcel} key="export">
|
|
686
723
|
<CloudDownloadOutlined style={{ marginRight: 6 }} />
|
|
687
|
-
{formatMessage({ id: 'cfmmUI.common.button.
|
|
724
|
+
{formatMessage({ id: 'cfmmUI.common.button.exportData', defaultMessage: '导出数据' })}
|
|
688
725
|
</a>
|
|
689
726
|
},
|
|
690
727
|
];
|
|
691
728
|
|
|
729
|
+
allButtons = handleTableButtonList(allButtons);
|
|
730
|
+
|
|
692
731
|
// 过滤有权限的按钮,并移除 auth 属性避免传递到 DOM
|
|
693
|
-
return allButtons
|
|
732
|
+
return allButtons!
|
|
694
733
|
.filter((button) => button.auth)
|
|
695
734
|
.map(({ auth, ...rest }) => rest);
|
|
696
735
|
}, [tableList, loading, columnsStateMap]);
|
|
@@ -18,13 +18,17 @@ export async function queryAllPermissions() {
|
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
const checkStatus = (status: string): boolean => {
|
|
22
|
+
return status.toUpperCase() === 'Y';
|
|
23
|
+
}
|
|
24
|
+
|
|
21
25
|
/**
|
|
22
26
|
* 选择权限组件
|
|
23
27
|
* @param props
|
|
24
28
|
* @returns
|
|
25
29
|
*/
|
|
26
30
|
const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
27
|
-
const { values, modalFormVisible, rootParentKey = '0', onSubmit, setModalFormVisible } = props;
|
|
31
|
+
const { values, authorizeName, modalFormVisible, rootParentKey = '0', onSubmit, setModalFormVisible } = props;
|
|
28
32
|
const { formatMessage } = useIntl();
|
|
29
33
|
const [form] = Form.useForm();
|
|
30
34
|
|
|
@@ -58,7 +62,7 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
58
62
|
/**
|
|
59
63
|
* 找出父级菜单下的所有菜单
|
|
60
64
|
*/
|
|
61
|
-
let filterSonMenuList = allMenuData.filter((item) => item.parentId === parentKey);
|
|
65
|
+
let filterSonMenuList = allMenuData.filter((item) => item.parentId.toString() === parentKey.toString());
|
|
62
66
|
const findSonMenuSortList = filterSonMenuList.sort((a, b) => Number(a.seqNo) - Number(b.seqNo));
|
|
63
67
|
|
|
64
68
|
/**
|
|
@@ -66,18 +70,23 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
66
70
|
*/
|
|
67
71
|
findSonMenuSortList.forEach((menuItem) => {
|
|
68
72
|
let sunItem = GetMenuTree(menuItem.menuId, allMenuData, allPermissionData);
|
|
73
|
+
const menuEnabled = checkStatus(menuItem.status);
|
|
69
74
|
|
|
70
75
|
/**
|
|
71
76
|
* 找出菜单对应的权限
|
|
72
77
|
* 如果菜单无效或者菜单权限无效,则节点不可用
|
|
73
78
|
*/
|
|
74
79
|
const filterPermissions = allPermissionData.filter((item) => item.menuId === menuItem.menuId);
|
|
75
|
-
let PermissionNodes = filterPermissions.map((item) =>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
let PermissionNodes = filterPermissions.map((item) => {
|
|
81
|
+
const permissionEnabled = checkStatus(item.status);
|
|
82
|
+
|
|
83
|
+
return ({
|
|
84
|
+
title: item.permissionName,
|
|
85
|
+
key: item.permissionId,
|
|
86
|
+
disableCheckbox: !menuEnabled && !permissionEnabled,
|
|
87
|
+
disabled: !menuEnabled && !permissionEnabled,
|
|
88
|
+
})
|
|
89
|
+
});
|
|
81
90
|
|
|
82
91
|
if (sunItem && sunItem.length > 0) {
|
|
83
92
|
/**
|
|
@@ -89,7 +98,7 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
89
98
|
title: (
|
|
90
99
|
<span
|
|
91
100
|
style={{
|
|
92
|
-
color:
|
|
101
|
+
color: menuEnabled ? '#1890ff' : '#cccccc',
|
|
93
102
|
fontWeight: 'bold',
|
|
94
103
|
}}
|
|
95
104
|
>
|
|
@@ -98,8 +107,8 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
98
107
|
</span>
|
|
99
108
|
),
|
|
100
109
|
//菜单不可用,则将颜色设置为灰色,且菜单不可用
|
|
101
|
-
disableCheckbox:
|
|
102
|
-
disabled:
|
|
110
|
+
disableCheckbox: !menuEnabled,
|
|
111
|
+
disabled: !menuEnabled,
|
|
103
112
|
key: `Menu-${menuItem.menuId.toString()}`,
|
|
104
113
|
children: sunItem,
|
|
105
114
|
});
|
|
@@ -108,7 +117,7 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
108
117
|
title: (
|
|
109
118
|
<span
|
|
110
119
|
style={{
|
|
111
|
-
color:
|
|
120
|
+
color: menuEnabled ? '#1890ff' : '#cccccc',
|
|
112
121
|
fontWeight: 'bold',
|
|
113
122
|
}}
|
|
114
123
|
>
|
|
@@ -116,8 +125,8 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
116
125
|
</span>
|
|
117
126
|
),
|
|
118
127
|
//菜单不可用,则将颜色设置为灰色,且菜单不可用
|
|
119
|
-
disableCheckbox:
|
|
120
|
-
disabled:
|
|
128
|
+
disableCheckbox: !menuEnabled,
|
|
129
|
+
disabled: !menuEnabled,
|
|
121
130
|
key: `Menu-${menuItem.menuId.toString()}`,
|
|
122
131
|
children: PermissionNodes,
|
|
123
132
|
});
|
|
@@ -139,7 +148,7 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
139
148
|
*/
|
|
140
149
|
const handleSearchAllMenu = async () => {
|
|
141
150
|
const getAllMenus = await queryAllMenus();
|
|
142
|
-
|
|
151
|
+
|
|
143
152
|
const getAllPermissions = await queryAllPermissions();
|
|
144
153
|
|
|
145
154
|
/**
|
|
@@ -204,10 +213,13 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
204
213
|
<ModalForm
|
|
205
214
|
form={form}
|
|
206
215
|
width={500}
|
|
207
|
-
title={formatMessage({
|
|
216
|
+
title={authorizeName ? `${formatMessage({
|
|
217
|
+
id: 'cfmmUI.PermissionSelect.title',
|
|
218
|
+
defaultMessage: '选择权限',
|
|
219
|
+
})} - ${authorizeName}` : `${formatMessage({
|
|
208
220
|
id: 'cfmmUI.PermissionSelect.title',
|
|
209
221
|
defaultMessage: '选择权限',
|
|
210
|
-
})}
|
|
222
|
+
})}`}
|
|
211
223
|
open={modalFormVisible}
|
|
212
224
|
onOpenChange={setModalFormVisible}
|
|
213
225
|
onFinish={handleSubmit}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { request } from '@umijs/max';
|
|
2
2
|
import { BASE_API } from '../constants';
|
|
3
|
-
import { API, DicDataItem,
|
|
3
|
+
import { API, DicDataItem, ExportMultiLangListItem, EditMultiLangDataType, LangInfoItem, EditMultiLangSubmitData } from '../types';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 删除minio文件
|
|
@@ -48,8 +48,8 @@ export async function queryDictionary(params: ParamsType) {
|
|
|
48
48
|
* @param params.recordId - 记录ID
|
|
49
49
|
* @returns 多语言信息列表
|
|
50
50
|
*/
|
|
51
|
-
export async function
|
|
52
|
-
return request<API.Result_Base<
|
|
51
|
+
export async function queryLangInfoExportList(params: {tableName: string, columnName: string}) {
|
|
52
|
+
return request<API.Result_Base<ExportMultiLangListItem[]>>(`${BASE_API}/i18n/export`, {
|
|
53
53
|
method: 'GET',
|
|
54
54
|
params,
|
|
55
55
|
});
|
|
@@ -63,7 +63,7 @@ export async function queryLangInfoExprotList(params: {tableName: string, column
|
|
|
63
63
|
* @param.langInfos 数据
|
|
64
64
|
* @returns 多语言信息列表
|
|
65
65
|
*/
|
|
66
|
-
export async function importMultiLangList(params: {tableName: string, columnName: string, i18nDataList:
|
|
66
|
+
export async function importMultiLangList(params: {tableName: string, columnName: string, i18nDataList: ExportMultiLangListItem[]}) {
|
|
67
67
|
return request<API.Result_Base<number>>(`${BASE_API}/i18n/importData`, {
|
|
68
68
|
method: 'POST',
|
|
69
69
|
data: params,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?:
|
|
1
|
+
export declare const CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DET\uFF0C\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null>;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CrudTableTypes = void 0;
|
|
7
|
-
var CrudTableTypes = exports.CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?:
|
|
7
|
+
var CrudTableTypes = exports.CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DET\uFF0C\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null>;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const EditMultiLangFormTypes = "\n /** \u5BFC\u51FA\u591A\u8BED\u8A00\u6570\u636E\u5217\u8868\u9879 */\n export interface
|
|
1
|
+
export declare const EditMultiLangFormTypes = "\n /** \u5BFC\u51FA\u591A\u8BED\u8A00\u6570\u636E\u5217\u8868\u9879 */\n export interface ExportMultiLangListItem {\n /** \u8BB0\u5F55ID */\n dataId: string;\n /** \u539F\u59CB\u503C */\n columnValue: string;\n zh_CN?: string;\n zh_TW?: string;\n en_US?: string;\n th_TH?: string;\n }\n\n type LangType = 'en_US' | 'th_TH' | 'zh_CN' | 'zh_TW';\n\n /** \u67E5\u8BE2\u5355\u4E2A\u591A\u8BED\u8A00\u6570\u636E */\n export type EditMultiLangDataType = {\n dataId: React.Key;\n i18nJson?: Record<LangType, {\n string: string;\n }>;\n };\n\n /** \u591A\u8BED\u8A00\u67E5\u8BE2\u53C2\u6570 */\n export interface LangInfoItem {\n /**\n * \u8868\u540D\u79F0\n */\n tableName: string;\n /**\n * \u5217\u540D\u79F0\n */\n columnName: string;\n /**\n * \u8BB0\u5F55ID\n */\n dataId: string;\n }\n\n /** \u591A\u8BED\u8A00\u63D0\u4EA4\u6570\u636E */\n export interface EditMultiLangSubmitData extends LangInfoItem {\n lang: LangType;\n value?: string;\n }\n\n /** \u591A\u8BED\u8A00\u4FE1\u606F\u7EC4\u4EF6\u7C7B\u578B */\n export interface EditMultiLangFormProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n modalFormVisible: boolean;\n /**\n * \u8BBE\u7F6E\u5F39\u7A97\u662F\u5426\u663E\u793A\n */\n setModalFormVisible: (visible: boolean) => void;\n /**\n * \u63D0\u4EA4\u540E\u56DE\u8C03\n */\n onAfterSubmit?: () => void;\n /**\n * \u591A\u8BED\u8A00\u4FE1\u606F\n */\n values?: LangInfoItem;\n /**\n * \u67E5\u8BE2\u5217\u8868\u63A5\u53E3\n */\n queryLangInfoList?: (params?: LangInfoItem) => Promise<API.Result_Base<EditMultiLangDataType>>;\n /**\n * \u4FDD\u5B58\u63A5\u53E3\n */\n batchSave?: (data?: LangInfoItem[]) => Promise<any>;\n }\n";
|
|
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.EditMultiLangFormTypes = void 0;
|
|
7
|
-
var EditMultiLangFormTypes = exports.EditMultiLangFormTypes = "\n /** \u5BFC\u51FA\u591A\u8BED\u8A00\u6570\u636E\u5217\u8868\u9879 */\n export interface
|
|
7
|
+
var EditMultiLangFormTypes = exports.EditMultiLangFormTypes = "\n /** \u5BFC\u51FA\u591A\u8BED\u8A00\u6570\u636E\u5217\u8868\u9879 */\n export interface ExportMultiLangListItem {\n /** \u8BB0\u5F55ID */\n dataId: string;\n /** \u539F\u59CB\u503C */\n columnValue: string;\n zh_CN?: string;\n zh_TW?: string;\n en_US?: string;\n th_TH?: string;\n }\n\n type LangType = 'en_US' | 'th_TH' | 'zh_CN' | 'zh_TW';\n\n /** \u67E5\u8BE2\u5355\u4E2A\u591A\u8BED\u8A00\u6570\u636E */\n export type EditMultiLangDataType = {\n dataId: React.Key;\n i18nJson?: Record<LangType, {\n string: string;\n }>;\n };\n\n /** \u591A\u8BED\u8A00\u67E5\u8BE2\u53C2\u6570 */\n export interface LangInfoItem {\n /**\n * \u8868\u540D\u79F0\n */\n tableName: string;\n /**\n * \u5217\u540D\u79F0\n */\n columnName: string;\n /**\n * \u8BB0\u5F55ID\n */\n dataId: string;\n }\n\n /** \u591A\u8BED\u8A00\u63D0\u4EA4\u6570\u636E */\n export interface EditMultiLangSubmitData extends LangInfoItem {\n lang: LangType;\n value?: string;\n }\n\n /** \u591A\u8BED\u8A00\u4FE1\u606F\u7EC4\u4EF6\u7C7B\u578B */\n export interface EditMultiLangFormProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n modalFormVisible: boolean;\n /**\n * \u8BBE\u7F6E\u5F39\u7A97\u662F\u5426\u663E\u793A\n */\n setModalFormVisible: (visible: boolean) => void;\n /**\n * \u63D0\u4EA4\u540E\u56DE\u8C03\n */\n onAfterSubmit?: () => void;\n /**\n * \u591A\u8BED\u8A00\u4FE1\u606F\n */\n values?: LangInfoItem;\n /**\n * \u67E5\u8BE2\u5217\u8868\u63A5\u53E3\n */\n queryLangInfoList?: (params?: LangInfoItem) => Promise<API.Result_Base<EditMultiLangDataType>>;\n /**\n * \u4FDD\u5B58\u63A5\u53E3\n */\n batchSave?: (data?: LangInfoItem[]) => Promise<any>;\n }\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PermissionSelectTypes = "\n export interface UserListItem {\n deptEntity: any;\n userId: string;\n userCode: string;\n userName: string;\n password: string;\n nickName: string;\n userType?: string;\n email?: string;\n phone?: string;\n sex: string;\n status: string;\n avatar?: string;\n remark?: string;\n roles: RoleListItem[];\n permissions: any[];\n }\n\n export interface RoleListItem {\n userIds: any;\n roleId: string;\n roleCode: string;\n roleName: string;\n status: string;\n remark?: string;\n\n users: UserListItem[];\n permissions: any[];\n }\n\n export interface MenuItem {\n menuId: string;\n menuCode: string;\n menuName: string;\n icon: string;\n parentId: string;\n seqNo: number;\n path: string;\n menuType: string;\n status: string;\n remark?: string;\n }\n\n export interface PermissionItem {\n permissionId: string;\n permissionCode: string;\n permissionName: string;\n menuId: string;\n status: string;\n remark?: string;\n }\n\n /**\n * \u9ED8\u8BA4\u4F20\u5165\u7684\u6570\u636E\uFF0C\u9700\u8981\u4F20\u5165\u6743\u9650\u5217\u8868\n * \u4E5F\u53EF\u4EE5\u4F20\u5165\u89D2\u8272ID\u6216\u662F\u7528\u6237ID\n */\n export interface PermissionSelectItem {\n permissionIds: string[];\n }\n\n /**\n * \u9009\u62E9\u6743\u9650\u7EC4\u4EF6\u7684props\n */\n export interface PermissionSelectFormProps {\n rootParentKey?: number | string;\n modalFormVisible: boolean;\n setModalFormVisible: (visible: boolean) => void;\n onSubmit: (values: FormValueType) => Promise<void>;\n values?: PermissionSelectItem | any;\n onCancel: any;\n }\n\n export interface CurrentUser {\n userId: string;\n userCode: string;\n userName?: string;\n avatar?: string;\n status?: string;\n nickName: string;\n\n menus?: MenuItem[];\n permissions?: PermissionItem[];\n\n [prop: string]: any;\n }\n";
|
|
1
|
+
export declare const PermissionSelectTypes = "\n export interface UserListItem {\n deptEntity: any;\n userId: string;\n userCode: string;\n userName: string;\n password: string;\n nickName: string;\n userType?: string;\n email?: string;\n phone?: string;\n sex: string;\n status: string;\n avatar?: string;\n remark?: string;\n roles: RoleListItem[];\n permissions: any[];\n }\n\n export interface RoleListItem {\n userIds: any;\n roleId: string;\n roleCode: string;\n roleName: string;\n status: string;\n remark?: string;\n\n users: UserListItem[];\n permissions: any[];\n }\n\n export interface MenuItem {\n menuId: string;\n menuCode: string;\n menuName: string;\n icon: string;\n parentId: string;\n seqNo: number;\n path: string;\n menuType: string;\n status: string;\n remark?: string;\n }\n\n export interface PermissionItem {\n permissionId: string;\n permissionCode: string;\n permissionName: string;\n menuId: string;\n status: string;\n remark?: string;\n }\n\n /**\n * \u9ED8\u8BA4\u4F20\u5165\u7684\u6570\u636E\uFF0C\u9700\u8981\u4F20\u5165\u6743\u9650\u5217\u8868\n * \u4E5F\u53EF\u4EE5\u4F20\u5165\u89D2\u8272ID\u6216\u662F\u7528\u6237ID\n */\n export interface PermissionSelectItem {\n permissionIds: string[];\n }\n\n /**\n * \u9009\u62E9\u6743\u9650\u7EC4\u4EF6\u7684props\n */\n export interface PermissionSelectFormProps {\n authorizeName?: string;\n rootParentKey?: number | string;\n modalFormVisible: boolean;\n setModalFormVisible: (visible: boolean) => void;\n onSubmit: (values: FormValueType) => Promise<void>;\n values?: PermissionSelectItem | any;\n onCancel: any;\n }\n\n export interface CurrentUser {\n userId: string;\n userCode: string;\n userName?: string;\n avatar?: string;\n status?: string;\n nickName: string;\n\n menus?: MenuItem[];\n permissions?: PermissionItem[];\n\n [prop: string]: any;\n }\n";
|
|
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.PermissionSelectTypes = void 0;
|
|
7
|
-
var PermissionSelectTypes = exports.PermissionSelectTypes = "\n export interface UserListItem {\n deptEntity: any;\n userId: string;\n userCode: string;\n userName: string;\n password: string;\n nickName: string;\n userType?: string;\n email?: string;\n phone?: string;\n sex: string;\n status: string;\n avatar?: string;\n remark?: string;\n roles: RoleListItem[];\n permissions: any[];\n }\n\n export interface RoleListItem {\n userIds: any;\n roleId: string;\n roleCode: string;\n roleName: string;\n status: string;\n remark?: string;\n\n users: UserListItem[];\n permissions: any[];\n }\n\n export interface MenuItem {\n menuId: string;\n menuCode: string;\n menuName: string;\n icon: string;\n parentId: string;\n seqNo: number;\n path: string;\n menuType: string;\n status: string;\n remark?: string;\n }\n\n export interface PermissionItem {\n permissionId: string;\n permissionCode: string;\n permissionName: string;\n menuId: string;\n status: string;\n remark?: string;\n }\n\n /**\n * \u9ED8\u8BA4\u4F20\u5165\u7684\u6570\u636E\uFF0C\u9700\u8981\u4F20\u5165\u6743\u9650\u5217\u8868\n * \u4E5F\u53EF\u4EE5\u4F20\u5165\u89D2\u8272ID\u6216\u662F\u7528\u6237ID\n */\n export interface PermissionSelectItem {\n permissionIds: string[];\n }\n\n /**\n * \u9009\u62E9\u6743\u9650\u7EC4\u4EF6\u7684props\n */\n export interface PermissionSelectFormProps {\n rootParentKey?: number | string;\n modalFormVisible: boolean;\n setModalFormVisible: (visible: boolean) => void;\n onSubmit: (values: FormValueType) => Promise<void>;\n values?: PermissionSelectItem | any;\n onCancel: any;\n }\n\n export interface CurrentUser {\n userId: string;\n userCode: string;\n userName?: string;\n avatar?: string;\n status?: string;\n nickName: string;\n\n menus?: MenuItem[];\n permissions?: PermissionItem[];\n\n [prop: string]: any;\n }\n";
|
|
7
|
+
var PermissionSelectTypes = exports.PermissionSelectTypes = "\n export interface UserListItem {\n deptEntity: any;\n userId: string;\n userCode: string;\n userName: string;\n password: string;\n nickName: string;\n userType?: string;\n email?: string;\n phone?: string;\n sex: string;\n status: string;\n avatar?: string;\n remark?: string;\n roles: RoleListItem[];\n permissions: any[];\n }\n\n export interface RoleListItem {\n userIds: any;\n roleId: string;\n roleCode: string;\n roleName: string;\n status: string;\n remark?: string;\n\n users: UserListItem[];\n permissions: any[];\n }\n\n export interface MenuItem {\n menuId: string;\n menuCode: string;\n menuName: string;\n icon: string;\n parentId: string;\n seqNo: number;\n path: string;\n menuType: string;\n status: string;\n remark?: string;\n }\n\n export interface PermissionItem {\n permissionId: string;\n permissionCode: string;\n permissionName: string;\n menuId: string;\n status: string;\n remark?: string;\n }\n\n /**\n * \u9ED8\u8BA4\u4F20\u5165\u7684\u6570\u636E\uFF0C\u9700\u8981\u4F20\u5165\u6743\u9650\u5217\u8868\n * \u4E5F\u53EF\u4EE5\u4F20\u5165\u89D2\u8272ID\u6216\u662F\u7528\u6237ID\n */\n export interface PermissionSelectItem {\n permissionIds: string[];\n }\n\n /**\n * \u9009\u62E9\u6743\u9650\u7EC4\u4EF6\u7684props\n */\n export interface PermissionSelectFormProps {\n authorizeName?: string;\n rootParentKey?: number | string;\n modalFormVisible: boolean;\n setModalFormVisible: (visible: boolean) => void;\n onSubmit: (values: FormValueType) => Promise<void>;\n values?: PermissionSelectItem | any;\n onCancel: any;\n }\n\n export interface CurrentUser {\n userId: string;\n userCode: string;\n userName?: string;\n avatar?: string;\n status?: string;\n nickName: string;\n\n menus?: MenuItem[];\n permissions?: PermissionItem[];\n\n [prop: string]: any;\n }\n";
|
|
@@ -7,7 +7,7 @@ import useAction from '../hooks/useAction';
|
|
|
7
7
|
import useAuthority from '../hooks/useAuthority';
|
|
8
8
|
import useMemoizedFn from '../hooks/useMemoizedFn';
|
|
9
9
|
import useQueryTableList from '../hooks/useQueryTableList';
|
|
10
|
-
import { API, CrudTableConfig, CrudTableRefType,
|
|
10
|
+
import { API, CrudTableConfig, CrudTableRefType, ExportMultiLangListItem, LangInfoItem, RefDrawerFormRefType } from '../types';
|
|
11
11
|
import ActionLogDrawer from './ActionLogDrawer';
|
|
12
12
|
import CreateForm from './AddDrawerForm';
|
|
13
13
|
import DropdownButton from './DropdownButton';
|
|
@@ -15,7 +15,7 @@ import EditMultiLangForm from './EditMultiLangForm';
|
|
|
15
15
|
import MyFooterToolbar from './MyFooterToolbar';
|
|
16
16
|
import ViewTableItemDrawer from './ViewTableItemDrawer';
|
|
17
17
|
import { genExcel, genExcelAdvanced, getExportColumns, getExportValueForColumns } from '../utils/excelHelper';
|
|
18
|
-
import { importMultiLangList,
|
|
18
|
+
import { importMultiLangList, queryLangInfoExportList } from '../services';
|
|
19
19
|
import { handleImportList, showCheckErrorTips } from '../utils/importHelper';
|
|
20
20
|
|
|
21
21
|
const { confirm } = Modal;
|
|
@@ -40,7 +40,7 @@ const generateDefaultAuthCodes = (localCode: string | undefined) => {
|
|
|
40
40
|
lang: `${baseCode}_lang`,
|
|
41
41
|
templateDownload: `${baseCode}_templateDownload`,
|
|
42
42
|
import: `${baseCode}_import`,
|
|
43
|
-
|
|
43
|
+
export: `${baseCode}_export`,
|
|
44
44
|
};
|
|
45
45
|
};
|
|
46
46
|
|
|
@@ -82,6 +82,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
82
82
|
const {
|
|
83
83
|
templateDownloadModalOpenChange,
|
|
84
84
|
handleTemplateDownloadModalSearchParamsChange,
|
|
85
|
+
// @ts-ignore
|
|
85
86
|
} = window.__POWERED_BY_QIANKUN__ ? useModel('@@qiankunStateFromMaster') : useModel('global');
|
|
86
87
|
const actionRef = useRef<ActionType>();
|
|
87
88
|
const updateDrawerRef = useRef<RefDrawerFormRefType>();
|
|
@@ -132,19 +133,19 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
132
133
|
setEditLangModalOpen(true);
|
|
133
134
|
});
|
|
134
135
|
|
|
135
|
-
const queryMultiLangData = useMemoizedFn(async (tableName: string, columnName: string): Promise<
|
|
136
|
+
const queryMultiLangData = useMemoizedFn(async (tableName: string, columnName: string): Promise<ExportMultiLangListItem[]> => {
|
|
136
137
|
if (!multiLang) return [];
|
|
137
138
|
|
|
138
139
|
if (multiLang.multiLangList) {
|
|
139
140
|
return multiLang.multiLangList;
|
|
140
141
|
}
|
|
141
142
|
|
|
142
|
-
if (multiLang.
|
|
143
|
-
return await multiLang.
|
|
143
|
+
if (multiLang.queryExportMultiLangData) {
|
|
144
|
+
return await multiLang.queryExportMultiLangData(tableName, columnName);
|
|
144
145
|
}
|
|
145
146
|
|
|
146
147
|
const result = await doAction('GET', { tableName, columnName }, {
|
|
147
|
-
actionFn:
|
|
148
|
+
actionFn: queryLangInfoExportList,
|
|
148
149
|
});
|
|
149
150
|
|
|
150
151
|
if (result.success && result.data) {
|
|
@@ -202,7 +203,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
202
203
|
}
|
|
203
204
|
|
|
204
205
|
// 处理导入数据,正确赋值字段以及转格式
|
|
205
|
-
const newList = handleImportList<
|
|
206
|
+
const newList = handleImportList<ExportMultiLangListItem>(list, { needHandleUnderline: false });
|
|
206
207
|
|
|
207
208
|
// 导入校验提示
|
|
208
209
|
// const errorMessageList = checkImportExecl(newList);
|
|
@@ -622,8 +623,44 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
622
623
|
],
|
|
623
624
|
);
|
|
624
625
|
|
|
626
|
+
// 判断是布尔值还是其他值,返回布尔值判断是否显示按钮
|
|
627
|
+
const isShowButton = (buttonAuth: string | boolean | undefined): boolean => {
|
|
628
|
+
return typeof buttonAuth === 'boolean' ? buttonAuth : getAuthorityFn(buttonAuth) ?? false;
|
|
629
|
+
};
|
|
630
|
+
|
|
631
|
+
// 处理表格额外操作按钮列表
|
|
632
|
+
const handleTableButtonList = (allButtons: MenuProps['items']) => {
|
|
633
|
+
if(!allButtons?.length) return allButtons;
|
|
634
|
+
|
|
635
|
+
let renderList: MenuProps['items'] | any[] = [...(allButtons ?? [])];
|
|
636
|
+
|
|
637
|
+
// 将额外的按钮按指定位置放入渲染列表
|
|
638
|
+
if (tableProps.extraTableButtonList?.length) {
|
|
639
|
+
tableProps.extraTableButtonList.forEach((v, idx) => {
|
|
640
|
+
const item = {
|
|
641
|
+
key: typeof v.auth === 'string' ? v.auth : 'extra-' + idx,
|
|
642
|
+
label: v.label,
|
|
643
|
+
icon: v.icon,
|
|
644
|
+
auth: isShowButton(v.auth),
|
|
645
|
+
};
|
|
646
|
+
if (v.position === 'start') {
|
|
647
|
+
renderList.unshift(item);
|
|
648
|
+
}
|
|
649
|
+
if (v.position === 'end') {
|
|
650
|
+
renderList.push(item);
|
|
651
|
+
}
|
|
652
|
+
if (typeof v.position === 'number') {
|
|
653
|
+
renderList.splice(v.position, 0, item);
|
|
654
|
+
}
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
return renderList.filter((item) => item?.auth);
|
|
659
|
+
};
|
|
660
|
+
|
|
661
|
+
// 处理表格顶部操作按钮列表
|
|
625
662
|
const getBarButtons = useMemo<MenuProps['items'] | any[]>(() => {
|
|
626
|
-
|
|
663
|
+
let allButtons: MenuProps['items'] | any[] = [
|
|
627
664
|
{
|
|
628
665
|
auth: getAuthorityFn(defaultAuthCodes.add),
|
|
629
666
|
key: 'add',
|
|
@@ -662,7 +699,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
662
699
|
label: (
|
|
663
700
|
<a onClick={handleDownloadTemplate} key="templateDownload">
|
|
664
701
|
<DownloadOutlined style={{ marginRight: 6 }} />
|
|
665
|
-
{formatMessage({ id: 'cfmmUI.common.button.
|
|
702
|
+
{formatMessage({ id: 'cfmmUI.common.button.templateDownload', defaultMessage: '下载模板' })}
|
|
666
703
|
</a>
|
|
667
704
|
),
|
|
668
705
|
},
|
|
@@ -679,18 +716,20 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
679
716
|
),
|
|
680
717
|
},
|
|
681
718
|
{
|
|
682
|
-
auth: getAuthorityFn(defaultAuthCodes.
|
|
683
|
-
key: '
|
|
719
|
+
auth: getAuthorityFn(defaultAuthCodes.export),
|
|
720
|
+
key: 'export',
|
|
684
721
|
disabled: !tableList.length || loading,
|
|
685
|
-
label: <a onClick={handleDownloadExcel} key="
|
|
722
|
+
label: <a onClick={handleDownloadExcel} key="export">
|
|
686
723
|
<CloudDownloadOutlined style={{ marginRight: 6 }} />
|
|
687
|
-
{formatMessage({ id: 'cfmmUI.common.button.
|
|
724
|
+
{formatMessage({ id: 'cfmmUI.common.button.exportData', defaultMessage: '导出数据' })}
|
|
688
725
|
</a>
|
|
689
726
|
},
|
|
690
727
|
];
|
|
691
728
|
|
|
729
|
+
allButtons = handleTableButtonList(allButtons);
|
|
730
|
+
|
|
692
731
|
// 过滤有权限的按钮,并移除 auth 属性避免传递到 DOM
|
|
693
|
-
return allButtons
|
|
732
|
+
return allButtons!
|
|
694
733
|
.filter((button) => button.auth)
|
|
695
734
|
.map(({ auth, ...rest }) => rest);
|
|
696
735
|
}, [tableList, loading, columnsStateMap]);
|
|
@@ -18,13 +18,17 @@ export async function queryAllPermissions() {
|
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
const checkStatus = (status: string): boolean => {
|
|
22
|
+
return status.toUpperCase() === 'Y';
|
|
23
|
+
}
|
|
24
|
+
|
|
21
25
|
/**
|
|
22
26
|
* 选择权限组件
|
|
23
27
|
* @param props
|
|
24
28
|
* @returns
|
|
25
29
|
*/
|
|
26
30
|
const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
27
|
-
const { values, modalFormVisible, rootParentKey = '0', onSubmit, setModalFormVisible } = props;
|
|
31
|
+
const { values, authorizeName, modalFormVisible, rootParentKey = '0', onSubmit, setModalFormVisible } = props;
|
|
28
32
|
const { formatMessage } = useIntl();
|
|
29
33
|
const [form] = Form.useForm();
|
|
30
34
|
|
|
@@ -58,7 +62,7 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
58
62
|
/**
|
|
59
63
|
* 找出父级菜单下的所有菜单
|
|
60
64
|
*/
|
|
61
|
-
let filterSonMenuList = allMenuData.filter((item) => item.parentId === parentKey);
|
|
65
|
+
let filterSonMenuList = allMenuData.filter((item) => item.parentId.toString() === parentKey.toString());
|
|
62
66
|
const findSonMenuSortList = filterSonMenuList.sort((a, b) => Number(a.seqNo) - Number(b.seqNo));
|
|
63
67
|
|
|
64
68
|
/**
|
|
@@ -66,18 +70,23 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
66
70
|
*/
|
|
67
71
|
findSonMenuSortList.forEach((menuItem) => {
|
|
68
72
|
let sunItem = GetMenuTree(menuItem.menuId, allMenuData, allPermissionData);
|
|
73
|
+
const menuEnabled = checkStatus(menuItem.status);
|
|
69
74
|
|
|
70
75
|
/**
|
|
71
76
|
* 找出菜单对应的权限
|
|
72
77
|
* 如果菜单无效或者菜单权限无效,则节点不可用
|
|
73
78
|
*/
|
|
74
79
|
const filterPermissions = allPermissionData.filter((item) => item.menuId === menuItem.menuId);
|
|
75
|
-
let PermissionNodes = filterPermissions.map((item) =>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
let PermissionNodes = filterPermissions.map((item) => {
|
|
81
|
+
const permissionEnabled = checkStatus(item.status);
|
|
82
|
+
|
|
83
|
+
return ({
|
|
84
|
+
title: item.permissionName,
|
|
85
|
+
key: item.permissionId,
|
|
86
|
+
disableCheckbox: !menuEnabled && !permissionEnabled,
|
|
87
|
+
disabled: !menuEnabled && !permissionEnabled,
|
|
88
|
+
})
|
|
89
|
+
});
|
|
81
90
|
|
|
82
91
|
if (sunItem && sunItem.length > 0) {
|
|
83
92
|
/**
|
|
@@ -89,7 +98,7 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
89
98
|
title: (
|
|
90
99
|
<span
|
|
91
100
|
style={{
|
|
92
|
-
color:
|
|
101
|
+
color: menuEnabled ? '#1890ff' : '#cccccc',
|
|
93
102
|
fontWeight: 'bold',
|
|
94
103
|
}}
|
|
95
104
|
>
|
|
@@ -98,8 +107,8 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
98
107
|
</span>
|
|
99
108
|
),
|
|
100
109
|
//菜单不可用,则将颜色设置为灰色,且菜单不可用
|
|
101
|
-
disableCheckbox:
|
|
102
|
-
disabled:
|
|
110
|
+
disableCheckbox: !menuEnabled,
|
|
111
|
+
disabled: !menuEnabled,
|
|
103
112
|
key: `Menu-${menuItem.menuId.toString()}`,
|
|
104
113
|
children: sunItem,
|
|
105
114
|
});
|
|
@@ -108,7 +117,7 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
108
117
|
title: (
|
|
109
118
|
<span
|
|
110
119
|
style={{
|
|
111
|
-
color:
|
|
120
|
+
color: menuEnabled ? '#1890ff' : '#cccccc',
|
|
112
121
|
fontWeight: 'bold',
|
|
113
122
|
}}
|
|
114
123
|
>
|
|
@@ -116,8 +125,8 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
116
125
|
</span>
|
|
117
126
|
),
|
|
118
127
|
//菜单不可用,则将颜色设置为灰色,且菜单不可用
|
|
119
|
-
disableCheckbox:
|
|
120
|
-
disabled:
|
|
128
|
+
disableCheckbox: !menuEnabled,
|
|
129
|
+
disabled: !menuEnabled,
|
|
121
130
|
key: `Menu-${menuItem.menuId.toString()}`,
|
|
122
131
|
children: PermissionNodes,
|
|
123
132
|
});
|
|
@@ -139,7 +148,7 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
139
148
|
*/
|
|
140
149
|
const handleSearchAllMenu = async () => {
|
|
141
150
|
const getAllMenus = await queryAllMenus();
|
|
142
|
-
|
|
151
|
+
|
|
143
152
|
const getAllPermissions = await queryAllPermissions();
|
|
144
153
|
|
|
145
154
|
/**
|
|
@@ -204,10 +213,13 @@ const PermissionSelect: React.FC<PermissionSelectFormProps> = (props) => {
|
|
|
204
213
|
<ModalForm
|
|
205
214
|
form={form}
|
|
206
215
|
width={500}
|
|
207
|
-
title={formatMessage({
|
|
216
|
+
title={authorizeName ? `${formatMessage({
|
|
217
|
+
id: 'cfmmUI.PermissionSelect.title',
|
|
218
|
+
defaultMessage: '选择权限',
|
|
219
|
+
})} - ${authorizeName}` : `${formatMessage({
|
|
208
220
|
id: 'cfmmUI.PermissionSelect.title',
|
|
209
221
|
defaultMessage: '选择权限',
|
|
210
|
-
})}
|
|
222
|
+
})}`}
|
|
211
223
|
open={modalFormVisible}
|
|
212
224
|
onOpenChange={setModalFormVisible}
|
|
213
225
|
onFinish={handleSubmit}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { request } from '@umijs/max';
|
|
2
2
|
import { BASE_API } from '../constants';
|
|
3
|
-
import { API, DicDataItem,
|
|
3
|
+
import { API, DicDataItem, ExportMultiLangListItem, EditMultiLangDataType, LangInfoItem, EditMultiLangSubmitData } from '../types';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 删除minio文件
|
|
@@ -48,8 +48,8 @@ export async function queryDictionary(params: ParamsType) {
|
|
|
48
48
|
* @param params.recordId - 记录ID
|
|
49
49
|
* @returns 多语言信息列表
|
|
50
50
|
*/
|
|
51
|
-
export async function
|
|
52
|
-
return request<API.Result_Base<
|
|
51
|
+
export async function queryLangInfoExportList(params: {tableName: string, columnName: string}) {
|
|
52
|
+
return request<API.Result_Base<ExportMultiLangListItem[]>>(`${BASE_API}/i18n/export`, {
|
|
53
53
|
method: 'GET',
|
|
54
54
|
params,
|
|
55
55
|
});
|
|
@@ -63,7 +63,7 @@ export async function queryLangInfoExprotList(params: {tableName: string, column
|
|
|
63
63
|
* @param.langInfos 数据
|
|
64
64
|
* @returns 多语言信息列表
|
|
65
65
|
*/
|
|
66
|
-
export async function importMultiLangList(params: {tableName: string, columnName: string, i18nDataList:
|
|
66
|
+
export async function importMultiLangList(params: {tableName: string, columnName: string, i18nDataList: ExportMultiLangListItem[]}) {
|
|
67
67
|
return request<API.Result_Base<number>>(`${BASE_API}/i18n/importData`, {
|
|
68
68
|
method: 'POST',
|
|
69
69
|
data: params,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?:
|
|
1
|
+
export declare const CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DET\uFF0C\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null>;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export var CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?:
|
|
1
|
+
export var CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DET\uFF0C\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null>;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const EditMultiLangFormTypes = "\n /** \u5BFC\u51FA\u591A\u8BED\u8A00\u6570\u636E\u5217\u8868\u9879 */\n export interface
|
|
1
|
+
export declare const EditMultiLangFormTypes = "\n /** \u5BFC\u51FA\u591A\u8BED\u8A00\u6570\u636E\u5217\u8868\u9879 */\n export interface ExportMultiLangListItem {\n /** \u8BB0\u5F55ID */\n dataId: string;\n /** \u539F\u59CB\u503C */\n columnValue: string;\n zh_CN?: string;\n zh_TW?: string;\n en_US?: string;\n th_TH?: string;\n }\n\n type LangType = 'en_US' | 'th_TH' | 'zh_CN' | 'zh_TW';\n\n /** \u67E5\u8BE2\u5355\u4E2A\u591A\u8BED\u8A00\u6570\u636E */\n export type EditMultiLangDataType = {\n dataId: React.Key;\n i18nJson?: Record<LangType, {\n string: string;\n }>;\n };\n\n /** \u591A\u8BED\u8A00\u67E5\u8BE2\u53C2\u6570 */\n export interface LangInfoItem {\n /**\n * \u8868\u540D\u79F0\n */\n tableName: string;\n /**\n * \u5217\u540D\u79F0\n */\n columnName: string;\n /**\n * \u8BB0\u5F55ID\n */\n dataId: string;\n }\n\n /** \u591A\u8BED\u8A00\u63D0\u4EA4\u6570\u636E */\n export interface EditMultiLangSubmitData extends LangInfoItem {\n lang: LangType;\n value?: string;\n }\n\n /** \u591A\u8BED\u8A00\u4FE1\u606F\u7EC4\u4EF6\u7C7B\u578B */\n export interface EditMultiLangFormProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n modalFormVisible: boolean;\n /**\n * \u8BBE\u7F6E\u5F39\u7A97\u662F\u5426\u663E\u793A\n */\n setModalFormVisible: (visible: boolean) => void;\n /**\n * \u63D0\u4EA4\u540E\u56DE\u8C03\n */\n onAfterSubmit?: () => void;\n /**\n * \u591A\u8BED\u8A00\u4FE1\u606F\n */\n values?: LangInfoItem;\n /**\n * \u67E5\u8BE2\u5217\u8868\u63A5\u53E3\n */\n queryLangInfoList?: (params?: LangInfoItem) => Promise<API.Result_Base<EditMultiLangDataType>>;\n /**\n * \u4FDD\u5B58\u63A5\u53E3\n */\n batchSave?: (data?: LangInfoItem[]) => Promise<any>;\n }\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export var EditMultiLangFormTypes = "\n /** \u5BFC\u51FA\u591A\u8BED\u8A00\u6570\u636E\u5217\u8868\u9879 */\n export interface
|
|
1
|
+
export var EditMultiLangFormTypes = "\n /** \u5BFC\u51FA\u591A\u8BED\u8A00\u6570\u636E\u5217\u8868\u9879 */\n export interface ExportMultiLangListItem {\n /** \u8BB0\u5F55ID */\n dataId: string;\n /** \u539F\u59CB\u503C */\n columnValue: string;\n zh_CN?: string;\n zh_TW?: string;\n en_US?: string;\n th_TH?: string;\n }\n\n type LangType = 'en_US' | 'th_TH' | 'zh_CN' | 'zh_TW';\n\n /** \u67E5\u8BE2\u5355\u4E2A\u591A\u8BED\u8A00\u6570\u636E */\n export type EditMultiLangDataType = {\n dataId: React.Key;\n i18nJson?: Record<LangType, {\n string: string;\n }>;\n };\n\n /** \u591A\u8BED\u8A00\u67E5\u8BE2\u53C2\u6570 */\n export interface LangInfoItem {\n /**\n * \u8868\u540D\u79F0\n */\n tableName: string;\n /**\n * \u5217\u540D\u79F0\n */\n columnName: string;\n /**\n * \u8BB0\u5F55ID\n */\n dataId: string;\n }\n\n /** \u591A\u8BED\u8A00\u63D0\u4EA4\u6570\u636E */\n export interface EditMultiLangSubmitData extends LangInfoItem {\n lang: LangType;\n value?: string;\n }\n\n /** \u591A\u8BED\u8A00\u4FE1\u606F\u7EC4\u4EF6\u7C7B\u578B */\n export interface EditMultiLangFormProps {\n /**\n * \u662F\u5426\u663E\u793A\u5F39\u7A97\n */\n modalFormVisible: boolean;\n /**\n * \u8BBE\u7F6E\u5F39\u7A97\u662F\u5426\u663E\u793A\n */\n setModalFormVisible: (visible: boolean) => void;\n /**\n * \u63D0\u4EA4\u540E\u56DE\u8C03\n */\n onAfterSubmit?: () => void;\n /**\n * \u591A\u8BED\u8A00\u4FE1\u606F\n */\n values?: LangInfoItem;\n /**\n * \u67E5\u8BE2\u5217\u8868\u63A5\u53E3\n */\n queryLangInfoList?: (params?: LangInfoItem) => Promise<API.Result_Base<EditMultiLangDataType>>;\n /**\n * \u4FDD\u5B58\u63A5\u53E3\n */\n batchSave?: (data?: LangInfoItem[]) => Promise<any>;\n }\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PermissionSelectTypes = "\n export interface UserListItem {\n deptEntity: any;\n userId: string;\n userCode: string;\n userName: string;\n password: string;\n nickName: string;\n userType?: string;\n email?: string;\n phone?: string;\n sex: string;\n status: string;\n avatar?: string;\n remark?: string;\n roles: RoleListItem[];\n permissions: any[];\n }\n\n export interface RoleListItem {\n userIds: any;\n roleId: string;\n roleCode: string;\n roleName: string;\n status: string;\n remark?: string;\n\n users: UserListItem[];\n permissions: any[];\n }\n\n export interface MenuItem {\n menuId: string;\n menuCode: string;\n menuName: string;\n icon: string;\n parentId: string;\n seqNo: number;\n path: string;\n menuType: string;\n status: string;\n remark?: string;\n }\n\n export interface PermissionItem {\n permissionId: string;\n permissionCode: string;\n permissionName: string;\n menuId: string;\n status: string;\n remark?: string;\n }\n\n /**\n * \u9ED8\u8BA4\u4F20\u5165\u7684\u6570\u636E\uFF0C\u9700\u8981\u4F20\u5165\u6743\u9650\u5217\u8868\n * \u4E5F\u53EF\u4EE5\u4F20\u5165\u89D2\u8272ID\u6216\u662F\u7528\u6237ID\n */\n export interface PermissionSelectItem {\n permissionIds: string[];\n }\n\n /**\n * \u9009\u62E9\u6743\u9650\u7EC4\u4EF6\u7684props\n */\n export interface PermissionSelectFormProps {\n rootParentKey?: number | string;\n modalFormVisible: boolean;\n setModalFormVisible: (visible: boolean) => void;\n onSubmit: (values: FormValueType) => Promise<void>;\n values?: PermissionSelectItem | any;\n onCancel: any;\n }\n\n export interface CurrentUser {\n userId: string;\n userCode: string;\n userName?: string;\n avatar?: string;\n status?: string;\n nickName: string;\n\n menus?: MenuItem[];\n permissions?: PermissionItem[];\n\n [prop: string]: any;\n }\n";
|
|
1
|
+
export declare const PermissionSelectTypes = "\n export interface UserListItem {\n deptEntity: any;\n userId: string;\n userCode: string;\n userName: string;\n password: string;\n nickName: string;\n userType?: string;\n email?: string;\n phone?: string;\n sex: string;\n status: string;\n avatar?: string;\n remark?: string;\n roles: RoleListItem[];\n permissions: any[];\n }\n\n export interface RoleListItem {\n userIds: any;\n roleId: string;\n roleCode: string;\n roleName: string;\n status: string;\n remark?: string;\n\n users: UserListItem[];\n permissions: any[];\n }\n\n export interface MenuItem {\n menuId: string;\n menuCode: string;\n menuName: string;\n icon: string;\n parentId: string;\n seqNo: number;\n path: string;\n menuType: string;\n status: string;\n remark?: string;\n }\n\n export interface PermissionItem {\n permissionId: string;\n permissionCode: string;\n permissionName: string;\n menuId: string;\n status: string;\n remark?: string;\n }\n\n /**\n * \u9ED8\u8BA4\u4F20\u5165\u7684\u6570\u636E\uFF0C\u9700\u8981\u4F20\u5165\u6743\u9650\u5217\u8868\n * \u4E5F\u53EF\u4EE5\u4F20\u5165\u89D2\u8272ID\u6216\u662F\u7528\u6237ID\n */\n export interface PermissionSelectItem {\n permissionIds: string[];\n }\n\n /**\n * \u9009\u62E9\u6743\u9650\u7EC4\u4EF6\u7684props\n */\n export interface PermissionSelectFormProps {\n authorizeName?: string;\n rootParentKey?: number | string;\n modalFormVisible: boolean;\n setModalFormVisible: (visible: boolean) => void;\n onSubmit: (values: FormValueType) => Promise<void>;\n values?: PermissionSelectItem | any;\n onCancel: any;\n }\n\n export interface CurrentUser {\n userId: string;\n userCode: string;\n userName?: string;\n avatar?: string;\n status?: string;\n nickName: string;\n\n menus?: MenuItem[];\n permissions?: PermissionItem[];\n\n [prop: string]: any;\n }\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export var PermissionSelectTypes = "\n export interface UserListItem {\n deptEntity: any;\n userId: string;\n userCode: string;\n userName: string;\n password: string;\n nickName: string;\n userType?: string;\n email?: string;\n phone?: string;\n sex: string;\n status: string;\n avatar?: string;\n remark?: string;\n roles: RoleListItem[];\n permissions: any[];\n }\n\n export interface RoleListItem {\n userIds: any;\n roleId: string;\n roleCode: string;\n roleName: string;\n status: string;\n remark?: string;\n\n users: UserListItem[];\n permissions: any[];\n }\n\n export interface MenuItem {\n menuId: string;\n menuCode: string;\n menuName: string;\n icon: string;\n parentId: string;\n seqNo: number;\n path: string;\n menuType: string;\n status: string;\n remark?: string;\n }\n\n export interface PermissionItem {\n permissionId: string;\n permissionCode: string;\n permissionName: string;\n menuId: string;\n status: string;\n remark?: string;\n }\n\n /**\n * \u9ED8\u8BA4\u4F20\u5165\u7684\u6570\u636E\uFF0C\u9700\u8981\u4F20\u5165\u6743\u9650\u5217\u8868\n * \u4E5F\u53EF\u4EE5\u4F20\u5165\u89D2\u8272ID\u6216\u662F\u7528\u6237ID\n */\n export interface PermissionSelectItem {\n permissionIds: string[];\n }\n\n /**\n * \u9009\u62E9\u6743\u9650\u7EC4\u4EF6\u7684props\n */\n export interface PermissionSelectFormProps {\n rootParentKey?: number | string;\n modalFormVisible: boolean;\n setModalFormVisible: (visible: boolean) => void;\n onSubmit: (values: FormValueType) => Promise<void>;\n values?: PermissionSelectItem | any;\n onCancel: any;\n }\n\n export interface CurrentUser {\n userId: string;\n userCode: string;\n userName?: string;\n avatar?: string;\n status?: string;\n nickName: string;\n\n menus?: MenuItem[];\n permissions?: PermissionItem[];\n\n [prop: string]: any;\n }\n";
|
|
1
|
+
export var PermissionSelectTypes = "\n export interface UserListItem {\n deptEntity: any;\n userId: string;\n userCode: string;\n userName: string;\n password: string;\n nickName: string;\n userType?: string;\n email?: string;\n phone?: string;\n sex: string;\n status: string;\n avatar?: string;\n remark?: string;\n roles: RoleListItem[];\n permissions: any[];\n }\n\n export interface RoleListItem {\n userIds: any;\n roleId: string;\n roleCode: string;\n roleName: string;\n status: string;\n remark?: string;\n\n users: UserListItem[];\n permissions: any[];\n }\n\n export interface MenuItem {\n menuId: string;\n menuCode: string;\n menuName: string;\n icon: string;\n parentId: string;\n seqNo: number;\n path: string;\n menuType: string;\n status: string;\n remark?: string;\n }\n\n export interface PermissionItem {\n permissionId: string;\n permissionCode: string;\n permissionName: string;\n menuId: string;\n status: string;\n remark?: string;\n }\n\n /**\n * \u9ED8\u8BA4\u4F20\u5165\u7684\u6570\u636E\uFF0C\u9700\u8981\u4F20\u5165\u6743\u9650\u5217\u8868\n * \u4E5F\u53EF\u4EE5\u4F20\u5165\u89D2\u8272ID\u6216\u662F\u7528\u6237ID\n */\n export interface PermissionSelectItem {\n permissionIds: string[];\n }\n\n /**\n * \u9009\u62E9\u6743\u9650\u7EC4\u4EF6\u7684props\n */\n export interface PermissionSelectFormProps {\n authorizeName?: string;\n rootParentKey?: number | string;\n modalFormVisible: boolean;\n setModalFormVisible: (visible: boolean) => void;\n onSubmit: (values: FormValueType) => Promise<void>;\n values?: PermissionSelectItem | any;\n onCancel: any;\n }\n\n export interface CurrentUser {\n userId: string;\n userCode: string;\n userName?: string;\n avatar?: string;\n status?: string;\n nickName: string;\n\n menus?: MenuItem[];\n permissions?: PermissionItem[];\n\n [prop: string]: any;\n }\n";
|