Filter.tsx 5.07 KB
import React from 'react';
import { Input, Radio, Row, Select } from 'antd';
import { debounce } from 'lodash';
import useInitail from '@/hooks/useInitail';
import { getShopApi } from '@/common/api';

const Option = Select.Option;
interface Props {
  setParams: Function;
  innerParams: AmsSpec.ListParams;
}
export default function SeriesFilter({ setParams, innerParams }: Props) {
  const { data: shopList } = useInitail<Array<CommonApi.OptionVO>, CommonApi.ShopParam>(getShopApi, [], {});

  const fetchListByName = debounce(value => {
    setParams({ ...value, current: 1 }, true);
  }, 500);

  const onSearch = (value: object) => setParams({ ...value, current: 1 }, true);
  return (
    <div>
      <Row justify="space-between" style={{ flexWrap: "wrap" }}>
        <Input.Search
          allowClear
          style={{ flex: 1, marginRight: 10 }}
          onChange={e => fetchListByName({ keywords: e.target.value })}
          onSearch={v => setParams({ keywords: v }, true)}
          placeholder="物品名称/编码"
        />
        {/* <Input.Search
          allowClear
          style={{ flex: 1, marginRight: 10 }}
          onChange={e => fetchListByName({ uniqueCode: e.target.value })}
          onSearch={v => setParams({ uniqueCode: v }, true)}
          placeholder="物品唯一标识"
        /> */}
        <Input.Search
          allowClear
          style={{ flex: 1, marginRight: 10 }}
          onChange={e => fetchListByName({ staffName: e.target.value })}
          onSearch={v => setParams({ staffName: v }, true)}
          placeholder="管理人员姓名"
        />
        <Select
          optionFilterProp="children"
          showSearch
          allowClear
          placeholder="物品使用门店"
          style={{ flex: 1, marginRight: 10 }}
          onChange={(value) => onSearch({ useShopId: value })}
        >
          {shopList.map((item) => (
            <Option key={item.id} value={item.id}>
              {item.name}
            </Option>
          ))}
        </Select>
        <Select
          optionFilterProp="children"
          showSearch
          allowClear
          placeholder="物品归属门店"
          style={{ flex: 1, marginRight: 10 }}
          onChange={(value) => onSearch({ assetShopId: value })}
        >
          {shopList.map((item) => (
            <Option key={item.id} value={item.id}>
              {item.name}
            </Option>
          ))}
        </Select>
      </Row>

      <Row justify="space-between" style={{ marginTop: 10 }}>
        <Select style={{ flex: 1, marginRight: 10 }} allowClear onChange={(v) => onSearch({ type: v })} placeholder="资产类型">
          <Option value={1} key={1}>固定资产</Option>
          <Option value={2} key={2}>低值品</Option>
          <Option value={3} key={3}>易耗品</Option>
        </Select>
        <Select style={{ flex: 1, marginRight: 10 }} allowClear onChange={(v) => onSearch({ agent: v })} placeholder="是否代管物品">
          <Option value={1} key={1}>代管</Option>
          <Option value={0} key={0}>被领用</Option>
        </Select>
        {/* <Select style={{ flex: 1, marginRight: 10 }} allowClear onChange={(v) => onSearch({ sourceType: v })} placeholder="库存来源类型">
          <Option value={1} key={1}>资产</Option>
          <Option value={2} key={2}>配件</Option>
          <Option value={3} key={3}>市场物料</Option>
        </Select> */}
        <Select style={{ flex: 1, marginRight: 10 }} allowClear onChange={(v) => onSearch({ status: v })} placeholder="状态">
          <Option value={1} key={1}>正常</Option>
          <Option value={2} key={2}>已报废</Option>
          <Option value={3} key={3}>已变卖</Option>
        </Select>
        <Select style={{ flex: 1, marginRight: 10 }} allowClear onChange={(v) => onSearch({ repair: v })} placeholder="是否维修中">
          <Option value={0} key={0}>正常</Option>
          <Option value={1} key={1}>处理中</Option>
        </Select>
      </Row>

      <Row justify="space-between" style={{ marginTop: 10, marginBottom: 15 }}>
        <Select style={{ flex: 1, marginRight: 10 }} allowClear onChange={(v) => onSearch({ sell: v })} placeholder="是否变卖中">
          <Option value={0} key={0}>正常</Option>
          <Option value={1} key={1}>处理中</Option>
        </Select>
        <Select style={{ flex: 1, marginRight: 10 }} allowClear onChange={(v) => onSearch({ allocate: v })} placeholder="是否调拨中">
          <Option value={0} key={0}>正常</Option>
          <Option value={1} key={1}>处理中</Option>
        </Select>
        <Select style={{ flex: 1, marginRight: 10 }} allowClear onChange={(v) => onSearch({ transfer: v })} placeholder="是否退回中">
          <Option value={0} key={0}>正常</Option>
          <Option value={1} key={1}>处理中</Option>
        </Select>
        <Select style={{ flex: 1, marginRight: 10 }} allowClear onChange={(v) => onSearch({ scrap: v })} placeholder="是否报废中">
          <Option value={0} key={0}>正常</Option>
          <Option value={1} key={1}>处理中</Option>
        </Select>
      </Row>
    </div>
  );
}