/* 扩展字段
* @Author: Li Hanlin
* @Date: 2022-11-10 09:39:56
* @Last Modified by: Li Hanlin
* @Last Modified time: 2022-12-19 11:25:53
*/
import * as React from 'react';
import { useState, useMemo, useRef, useEffect } from 'react';
import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton';
import getcolumns from './columns';
import { doFetch } from '@/utils/doFetch';
import { message, Dropdown, Menu, Layout, Button, Image, Space, Divider, Tabs } from 'antd';
import TreeRender from '@/components/TreeRender';
import { ProDescriptions } from '@ant-design/pro-components';
import InitForm from '@/components/InitForm';
const { Sider, Content } = Layout;
function Field(props) {
const actionRef = useRef(),
formRef = useRef(),
[drawer, setDrawer] = useState({
visible: false,
}),
[items, setitems] = useState([]),
[extraparams, setextraparams] = useState({}),
urlParams = {
save: '/base/paFormField/save',
remove: '/base/paFormField/delete',
list: '/base/paFormField/queryPage',
detail: '/asset/equipment/detail',
formList: '/base/paForm/queryList',
};
useEffect(() => {
const fn = async () => {
const result = await doFetch({
url: urlParams.formList,
params: {},
});
//console.log(result);
if (!result?.data?.dataList.length == 0) {
setitems(
result?.data?.dataList.map((it, index) => {
return {
key: it.id,
label: it.formName,
};
}),
);
setDrawer((s) => ({
...s,
formName: result?.data?.dataList[0]?.formName,
formId: result?.data?.dataList[0]?.id,
}));
}
};
fn();
}, []);
const edit = (text, row, _, action) => {
return (
{
setDrawer((s) => ({
...s,
visible: true,
title: '编辑',
fields: getcolumns(true),
val: 'edit',
// detailpath: urlParams.detail,
// params: { id: row.id },
item: {
...row,
fieldChar: String(row?.fieldChar),
formName: drawer?.formName,
formId: drawer?.formId,
},
onFinish: async (vals) => {
//console.log(vals);
let params = {
...vals,
id: row.id,
formId: drawer?.formId,
};
delete params.formName;
let res = await doFetch({
url: urlParams.save,
params,
});
if (res.code === '0000') {
message.success('新增成功!');
setDrawer((s) => ({
...s,
visible: false,
}));
actionRef.current.reload();
}
},
}));
},
}}
>
编辑
);
};
const remove = (text, row, _, action) => {
return (
{
let res = await doFetch({ url: urlParams.remove, params: { id: row.id } });
if (res.code === '0000') {
message.success('删除成功!');
setDrawer((s) => ({
...s,
visible: false,
}));
actionRef.current.reload();
}
},
}}
btn={{
size: 'small',
type: 'danger',
}}
>
删除
);
};
const columns = useMemo(() => {
let defcolumn = getcolumns(setDrawer);
return defcolumn.concat({
title: '操作',
valueType: 'option',
width: 200,
render: (text, row, _, action) => [edit(text, row, _, action), remove(text, row, _, action)],
});
}, []);
return (
表单信息
字段信息}
columns={columns}
path={urlParams.list}
params={{ formId: '1' }}
actionRef={actionRef}
pageextra={'add'}
resizeable={false}
addconfig={{
// access: 'sysDepartment_save',
btn: {
disabled: false,
type: 'primary',
onClick: () => {
//console.log(drawer);
setDrawer((s) => ({
...s,
visible: true,
item: {
fieldChar: '1',
formName: drawer?.formName,
formId: drawer?.formId,
},
title: '新增',
val: 'add',
fields: getcolumns(false),
onFinish: async (vals) => {
//console.log(vals);
let params = {
...vals,
formId: drawer?.formId,
};
delete params.formName;
let res = await doFetch({
url: urlParams.save,
params,
});
if (res.code === '0000') {
message.success('新增成功!');
setDrawer((s) => ({
...s,
visible: false,
}));
actionRef.current.reload();
}
},
}));
},
},
}}
// x={1500}
extraparams={extraparams}
/>
{
setDrawer((s) => ({
...s,
visible: false,
item: null,
detailpath: null,
params: null,
}));
}}
{...drawer}
/>
);
}
export default Field;