Commit 8546c12ee7e75eb0bb42633937ba1d48ab8a9656

Authored by jiangwei
1 parent 81339a3c

计划池导出

src/pages/pms/entity.ts
@@ -201,3 +201,20 @@ export const typeSenderObj: {[key: string]: string} = { @@ -201,3 +201,20 @@ export const typeSenderObj: {[key: string]: string} = {
201 '调出锁定': '', 201 '调出锁定': '',
202 '': '', 202 '': '',
203 }; 203 };
  204 +
  205 +export function getUrl(url: string, obj: object): string {
  206 + if (!Object.keys(obj).length) {
  207 + return url;
  208 + }
  209 + const pa: string[] = [];
  210 + for (let k in obj) {
  211 + if (obj[k]) {
  212 + pa.push(`${k}=${obj[k]}`);
  213 + }
  214 + }
  215 + const st = pa.join("&");
  216 + if (st) {
  217 + return `${url}?${st}`;
  218 + }
  219 + return '';
  220 +}
src/pages/pms/partPlan/PlanPool/components/Filter.tsx
1 -import React from 'react'; 1 +import React, { useEffect, useState } from 'react';
2 import { Input } from 'antd'; 2 import { Input } from 'antd';
3 import { useStore } from '../index'; 3 import { useStore } from '../index';
4 import debounce from 'lodash/debounce'; 4 import debounce from 'lodash/debounce';
5 -import {planPoolTypeData} from '@/pages/pms/entity'; 5 +import { planPoolTypeData, getUrl } from '@/pages/pms/entity';
6 import usePagination from "@/hooks/usePagination"; 6 import usePagination from "@/hooks/usePagination";
7 import {getStoragePage} from "@/pages/pms/storage/StorageManage/api"; 7 import {getStoragePage} from "@/pages/pms/storage/StorageManage/api";
8 import useInitail from "@/hooks/useInitail"; 8 import useInitail from "@/hooks/useInitail";
@@ -15,13 +15,18 @@ export default function Filter() { @@ -15,13 +15,18 @@ export default function Filter() {
15 const { list: storages } = usePagination<PartStorageSpace.PageVO>(getStoragePage, {pageSize: 1000}); 15 const { list: storages } = usePagination<PartStorageSpace.PageVO>(getStoragePage, {pageSize: 1000});
16 const { data: shops } = useInitail<PmsStoragePartShop.Option[], {}>(api.getShopApi, [], {}); 16 const { data: shops } = useInitail<PmsStoragePartShop.Option[], {}>(api.getShopApi, [], {});
17 const { dfParams, setDfParams, partTypeData } = useStore(); 17 const { dfParams, setDfParams, partTypeData } = useStore();
  18 + const [url, setUrl] = useState('/api/pms/erp/plan/pool/export');
  19 +
  20 + useEffect(() => {
  21 + setUrl(getUrl('/api/pms/erp/plan/pool/export', dfParams));
  22 + }, [dfParams]);
18 23
19 const handleChangeKeywords = debounce((value: string) => { 24 const handleChangeKeywords = debounce((value: string) => {
20 setDfParams({ ...dfParams, current: 1, keywords: value }); 25 setDfParams({ ...dfParams, current: 1, keywords: value });
21 }, 500); 26 }, 500);
22 27
23 return ( 28 return (
24 - <div style={{display: 'flex', flexWrap: 'wrap', justifyContent: 'flex-start', marginBottom: 10}}> 29 + <div style={{display: 'flex', flexWrap: 'wrap', justifyContent: 'flex-start', marginBottom: 10, alignItems: 'center'}}>
25 <PmsSelect 30 <PmsSelect
26 style={{ width: 200, marginRight: 10}} 31 style={{ width: 200, marginRight: 10}}
27 allowClear 32 allowClear
@@ -71,6 +76,11 @@ export default function Filter() { @@ -71,6 +76,11 @@ export default function Filter() {
71 placeholder="配件编码|名称" 76 placeholder="配件编码|名称"
72 onSearch={v => handleChangeKeywords(v)} 77 onSearch={v => handleChangeKeywords(v)}
73 /> 78 />
  79 + <a
  80 + href={url}
  81 + >
  82 + 导出计划池表格
  83 + </a>
74 </div> 84 </div>
75 ); 85 );
76 } 86 }