123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- 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) => (
- <div>
- {recode.amount}
- {recode.unit}
- </div>
- ),
- },
- {
- 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) => (
- <div>
- {recode.amount}
- {recode.unit}
- </div>
- ),
- },
- {
- 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) => (
- <div>
- {recode.amount}
- {recode.unit}
- </div>
- ),
- },
- {
- 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 (
- <>
- <a
- onClick={() => {
- console.log(imgs[0]);
- return Zmage.browsing({
- set: setData,
- });
- }}
- >
- 查看
- </a>
- </>
- );
- } else {
- return <div>暂无图片</div>;
- }
- },
- },
- ];
- 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 (
- <div>
- {record.in_amount -
- record.out_amount -
- record.scrap_amount +
- record.update_amount}
- {record.unit}
- </div>
- );
- },
- },
- {
- title: '入库',
- align: 'center',
- render: (recode) => (
- <div>
- {recode.in_amount}
- {recode.unit}
- </div>
- ),
- },
- {
- title: '出库',
- align: 'center',
- render: (recode) => (
- <div>
- {recode.out_amount}
- {recode.unit}
- </div>
- ),
- },
- {
- title: '报废',
- align: 'center',
- render: (recode) => (
- <div>
- {recode.scrap_amount}
- {recode.unit}
- </div>
- ),
- },
- {
- title: '预警状态',
- dataIndex: 'warning_state',
- align: 'warning_state',
- align: 'center',
- render: (warn) => {
- return warn == 2 ? (
- <div style={{ color: 'red' }}>报警</div>
- ) : (
- <div>正常</div>
- );
- },
- },
- {
- 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 (
- <div>
- {record.in_amount -
- record.out_amount -
- record.scrap_amount +
- record.update_amount}
- {record.unit}
- </div>
- );
- },
- },
- {
- title: '入库',
- align: 'center',
- render: (recode) => (
- <div>
- {recode.in_amount}
- {recode.unit}
- </div>
- ),
- },
- {
- title: '出库',
- align: 'center',
- render: (recode) => (
- <div>
- {recode.out_amount}
- {recode.unit}
- </div>
- ),
- },
- {
- title: '报废',
- align: 'center',
- render: (recode) => (
- <div>
- {recode.scrap_amount}
- {recode.unit}
- </div>
- ),
- },
- {
- title: '预警状态',
- dataIndex: 'warning_state',
- align: 'warning_state',
- align: 'center',
- render: (warn) => {
- return warn == 2 ? (
- <div style={{ color: 'red' }}>报警</div>
- ) : (
- <div>正常</div>
- );
- },
- },
- ];
- 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 (
- <PageContent closeable={false}>
- <PageTitle children={titles[type]} returnable />
- <div className="content-tab" style={{ marginTop: '0.1rem' }}>
- {Number(type) !== PageType.warning && Number(type) !== PageType.base ? (
- <Table
- sticky={{ offsetHeader: 0 }}
- loading={loading}
- dataSource={dataSource}
- columns={columnsList[type]}
- pagination={false}
- />
- ) : (
- <Table
- sticky={{ offsetHeader: 0 }}
- loading={loadingExist}
- dataSource={dataSource}
- columns={columnsList[type]}
- pagination={false}
- />
- )}
- </div>
- </PageContent>
- );
- };
- export default SparePartDetail;
|