import PageContent from '@/components/PageContent';
import PageTitle from '@/components/PageTitle';
import {
queryInventoryList,
queryStoreList,
} from '@/services/StorageManagement';
import { useParams, useRequest } from '@umijs/max';
import { Table } from 'antd';
import dayjs from 'dayjs';
import { useEffect, useRef, useState } from 'react';
import { PageType } from '.';
const SparePartDetail = () => {
const { projectId, type } = useParams();
const titles = ['入库详情', '出库详情', '报废详情', '库存详情', '基础库存'];
const defaultParams = {
type: Number(type),
project_id: Number(projectId),
check_result: 0,
category_id: 0,
start_time: '',
end_time: '',
name: '',
};
const defaultParamsOfExit = {
category_id: 0,
name: '',
model_number: '',
warning_state: Number(type) === PageType.warning ? 2 : 0,
project_id: Number(projectId),
};
const columns = [
{
title: '仓储类型',
dataIndex: 'category_name',
key: 'category_name',
align: 'center',
},
{
title: '名称',
dataIndex: 'name',
key: 'name',
align: 'center',
},
{
title: '型号',
dataIndex: 'model_number',
key: 'model_number',
align: 'center',
},
];
const columnsIn = [
...columns,
{
title: '入库数量',
// dataIndex: 'amount',
// key: 'amount',
align: 'center',
render: (recode) => (
{recode.amount}
{recode.unit}
),
},
{
title: '入库日期',
dataIndex: 'create_time',
key: 'create_time',
align: 'center',
render: (time) => dayjs(time).format('YYYY-MM-DD'),
},
{
title: '入库人',
dataIndex: 'user_name',
key: 'user_name',
align: 'center',
},
];
const columnsOut = [
...columns,
{
title: '出库数量',
// dataIndex: 'amount',
// key: 'amount',
align: 'center',
render: (recode) => (
{recode.amount}
{recode.unit}
),
},
{
title: '出库日期',
dataIndex: 'create_time',
key: 'create_time',
align: 'center',
render: (time) => dayjs(time).format('YYYY-MM-DD'),
},
{
title: '出库人',
dataIndex: 'user_name',
key: 'user_name',
align: 'center',
},
{
title: '领用人',
dataIndex: 'recipient_user_name',
key: 'recipient_user_name',
align: 'center',
},
];
const columnsScrap = [
...columns,
{
title: '报废信息',
dataIndex: 'desc',
key: 'desc',
align: 'center',
},
{
title: '报废数量',
// dataIndex: 'amount',
// key: 'amount',
align: 'center',
render: (recode) => (
{recode.amount}
{recode.unit}
),
},
{
title: '经办人',
dataIndex: 'user_name',
key: 'user_name',
align: 'center',
},
{
title: '报废日期',
dataIndex: 'create_time',
key: 'create_time',
align: 'center',
render: (time) => dayjs(time).format('YYYY-MM-DD'),
},
{
title: '图片',
dataIndex: 'images',
align: 'center',
render: (images) => {
if (images) {
const imgs = JSON.parse(images);
const setData = imgs.map((img) => {
return { src: img };
});
return (
<>
{
console.log(imgs[0]);
return Zmage.browsing({
set: setData,
});
}}
>
查看
>
);
} else {
return 暂无图片
;
}
},
},
];
const columnsExit = [
{
title: '类型',
dataIndex: 'category_name',
key: 'category_name',
align: 'center',
},
{
title: '名称',
dataIndex: 'name',
key: 'name',
align: 'center',
},
{
title: '型号',
dataIndex: 'model_number',
key: 'model_number',
align: 'center',
},
{
title: '在库',
align: 'center',
render: (record) => {
return (
{record.in_amount -
record.out_amount -
record.scrap_amount +
record.update_amount}
{record.unit}
);
},
},
{
title: '入库',
align: 'center',
render: (recode) => (
{recode.in_amount}
{recode.unit}
),
},
{
title: '出库',
align: 'center',
render: (recode) => (
{recode.out_amount}
{recode.unit}
),
},
{
title: '报废',
align: 'center',
render: (recode) => (
{recode.scrap_amount}
{recode.unit}
),
},
{
title: '预警状态',
dataIndex: 'warning_state',
align: 'warning_state',
align: 'center',
render: (warn) => {
return warn == 2 ? (
报警
) : (
正常
);
},
},
{
title: '预警内容',
dataIndex: 'warning_content',
key: 'warning_content',
align: 'center',
},
];
const columnsBase = [
{
title: '类型',
dataIndex: 'category_name',
key: 'category_name',
align: 'center',
},
{
title: '名称',
dataIndex: 'name',
key: 'name',
align: 'center',
},
{
title: '型号',
dataIndex: 'model_number',
key: 'model_number',
align: 'center',
},
{
title: '在库',
align: 'center',
render: (record) => {
return (
{record.in_amount -
record.out_amount -
record.scrap_amount +
record.update_amount}
{record.unit}
);
},
},
{
title: '入库',
align: 'center',
render: (recode) => (
{recode.in_amount}
{recode.unit}
),
},
{
title: '出库',
align: 'center',
render: (recode) => (
{recode.out_amount}
{recode.unit}
),
},
{
title: '报废',
align: 'center',
render: (recode) => (
{recode.scrap_amount}
{recode.unit}
),
},
{
title: '预警状态',
dataIndex: 'warning_state',
align: 'warning_state',
align: 'center',
render: (warn) => {
return warn == 2 ? (
报警
) : (
正常
);
},
},
];
const columnsList = [
columnsIn,
columnsOut,
columnsScrap,
columnsExit,
columnsBase,
];
const [dataSource, setDataSource] = useState([]);
const [pagination, setPagination] = useState({
current: 1,
total: 0,
pageSize: 20,
});
const isLoadAll = useRef(false);
const bottomAreaOfTable = useRef();
const { run, loading } = useRequest(
(data) => {
data.page = pagination?.current || defaultParams.currentPage;
data.page_size = pagination?.pageSize || defaultParams.pageSize;
return queryStoreList(data);
},
{
manual: true,
formatResult: (result) => {
setDataSource(result?.data);
},
},
);
const { loading: loadingExist, run: runExist } = useRequest(
(data) => {
data.page = pagination?.current || defaultParamsOfExit.currentPage;
data.page_size = pagination?.pageSize || defaultParamsOfExit.pageSize;
return queryInventoryList(data);
},
{
manual: true,
formatResult: (result) => {
setDataSource(result?.data);
},
},
);
useEffect(() => {
Number(type) !== PageType.warning && Number(type) !== PageType.base
? run(defaultParams)
: runExist(defaultParamsOfExit);
}, [type]);
return (
{Number(type) !== PageType.warning && Number(type) !== PageType.base ? (
) : (
)}
);
};
export default SparePartDetail;