|
@@ -1,13 +1,9 @@
|
|
|
-import {delProductionRequisition, semiManufacturesOut} from '@apis';
|
|
|
+import {delProductionRequisition} from '@apis';
|
|
|
import {ColumnsType} from 'antd/es/table';
|
|
|
import {SemiDrawListData} from '@models';
|
|
|
-import {useState} from 'react';
|
|
|
-import {Button, Modal, message} from 'antd';
|
|
|
+import {Button} from 'antd';
|
|
|
import {DOUBLE_BTN_WIDTH, MIDDLE_TABLE_WIDTH, NORMAL_TABLE_WIDTH, SMALL_TABLE_WIDTH} from '@utils';
|
|
|
-import {useMutation} from '@tanstack/react-query';
|
|
|
-import {useStore} from 'zustand';
|
|
|
-import {userStore} from '@stores';
|
|
|
-import {useSupertube, useTableDeleteEvent} from '@hooks';
|
|
|
+import {useSupertube, useTableDeleteEvent, useTableModalEvent} from '@hooks';
|
|
|
|
|
|
const tableColumns: ColumnsType<SemiDrawListData> = [
|
|
|
{title: '要货单编号', dataIndex: 'askGoodsId', key: 'askGoodsId', width: NORMAL_TABLE_WIDTH},
|
|
@@ -32,53 +28,11 @@ const tableColumns: ColumnsType<SemiDrawListData> = [
|
|
|
},
|
|
|
];
|
|
|
|
|
|
-function usePutInQuery(refetch: () => void) {
|
|
|
- const [pendingId, setPendingId] = useState('');
|
|
|
- const userId = useStore(userStore, state => String(state.id));
|
|
|
-
|
|
|
- const {mutate} = useMutation({
|
|
|
- mutationFn: semiManufacturesOut,
|
|
|
- onSuccess({msg}) {
|
|
|
- if (msg === '200') {
|
|
|
- refetch();
|
|
|
- setPendingId('');
|
|
|
- message.success('出库成功');
|
|
|
- }
|
|
|
- },
|
|
|
- });
|
|
|
-
|
|
|
- function putInQuery(data: SemiDrawListData) {
|
|
|
- const {companyNumber, wbs, materialId, askGoodsId, num, id, materialCode} = data;
|
|
|
- setPendingId(id);
|
|
|
- mutate({
|
|
|
- companyNumber,
|
|
|
- wbs,
|
|
|
- materialId,
|
|
|
- warehousingNum: num,
|
|
|
- userId,
|
|
|
- askGoodsId,
|
|
|
- wllbCode: materialCode,
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- function onClick(data: SemiDrawListData) {
|
|
|
- return function () {
|
|
|
- Modal.confirm({
|
|
|
- title: '出库',
|
|
|
- content: `你确定要对${data.askGoodsId}出库吗?`,
|
|
|
- onOk: () => putInQuery(data),
|
|
|
- });
|
|
|
- };
|
|
|
- }
|
|
|
-
|
|
|
- return [pendingId, onClick] as const;
|
|
|
-}
|
|
|
-
|
|
|
export function useHandle(refetch: () => void) {
|
|
|
- const [pendingId, onClick] = usePutInQuery(refetch);
|
|
|
- const [editId, onDelete] = useTableDeleteEvent(delProductionRequisition, refetch, {
|
|
|
+ const [deleteId, onDelete] = useTableDeleteEvent(delProductionRequisition, refetch, {
|
|
|
label: '半成品领料单',
|
|
|
});
|
|
|
+ const [{visible, editId: putOutId}, {onClose, onEdit}] = useTableModalEvent();
|
|
|
|
|
|
const isSuper = useSupertube();
|
|
|
const columns: ColumnsType<SemiDrawListData> = [
|
|
@@ -89,20 +43,14 @@ export function useHandle(refetch: () => void) {
|
|
|
key: 'id',
|
|
|
fixed: 'right',
|
|
|
width: DOUBLE_BTN_WIDTH,
|
|
|
- render(_, data) {
|
|
|
- const {id} = data;
|
|
|
+ render(_, {id, type}) {
|
|
|
return (
|
|
|
<>
|
|
|
- <Button
|
|
|
- type='link'
|
|
|
- disabled={data.type !== '0'}
|
|
|
- onClick={onClick(data)}
|
|
|
- loading={pendingId === data.id}
|
|
|
- >
|
|
|
- {data.type === '0' ? '出库' : '已出库'}
|
|
|
+ <Button type='link' disabled={type !== '0' || deleteId === id} onClick={onEdit(id)}>
|
|
|
+ {type === '0' ? '出库' : '已出库'}
|
|
|
</Button>
|
|
|
{isSuper && (
|
|
|
- <Button type='text' danger loading={editId === id} onClick={onDelete(id)}>
|
|
|
+ <Button type='text' danger loading={deleteId === id} onClick={onDelete(id)}>
|
|
|
删除
|
|
|
</Button>
|
|
|
)}
|
|
@@ -112,5 +60,5 @@ export function useHandle(refetch: () => void) {
|
|
|
},
|
|
|
];
|
|
|
|
|
|
- return [{columns}] as const;
|
|
|
+ return [{columns, visible, putOutId}, {onClose}] as const;
|
|
|
}
|