import { DeleteOutlined } from '@ant-design/icons';
import { ArrayItems } from '@formily/antd';
import { Popconfirm } from 'antd';
import { service } from '@/pages/system/DataSource';
import _ from 'lodash';
import { useField } from '@formily/react';
import { Store } from 'jetlinks-store';
interface Props {
type: any;
}
const RemoveData = (props: Props) => {
const { type } = props;
const row = ArrayItems.useRecord!();
const index = ArrayItems.useIndex!();
const self = useField();
const array = ArrayItems.useArray!();
if (!array) return null;
if (array.field?.pattern !== 'editable') return null;
return (
{
if (self?.disabled) return;
if (_.map(Store.get('datasource-detail-list'), 'name').includes(type.table)) {
service.rdbTables(type.id, type.table).then((resp) => {
if (resp.status === 200) {
if ([..._.map(resp.result.columns, 'name')].includes(row?.name)) {
service.delRdbTablesColumn(type.id, type.table, [row?.name]).then((response) => {
if (response.status === 200) {
array.field?.remove?.(index);
array.props?.onRemove?.(index);
}
});
} else {
array.field?.remove?.(index);
array.props?.onRemove?.(index);
}
}
});
} else {
array.field?.remove?.(index);
array.props?.onRemove?.(index);
}
}}
>
);
};
export default RemoveData;