import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' import styles from './index.module.scss' import { useDispatch, useSelector } from 'react-redux' import store, { RootState } from '@/store' import { Button, Cascader, DatePicker, Input, Select } from 'antd' import history, { btnFlagFu } from '@/utils/history' import MyPopconfirm from '@/components/MyPopconfirm' import MyTable from '@/components/MyTable' import { D3STAFF_PARAM_ROWS2, D3STAFF_TABLE_COLUMNS, DEFAULT_D3STAFF_PARAMS } from './constants' import { D3StaffSearchType, ID3StaffItem, ID3StaffParams } from './types' import { C21_APIdel } from '@/store/action/C21wealth' import { MessageFu } from '@/utils/message' import { sonTypeNameObj, statusObj } from '@/utils/tableData' import { D3_APIList } from '@/store/action/D3staff' import { filterEmptyStrings } from '@/utils/objects' import { selectObj } from '@/utils/select' import { D2_APIgetList } from '@/store/action/D2storSet' import dayjs from 'dayjs' const { RangePicker } = DatePicker function D3staff() { // 从仓库拿数据 const tableInfo = useSelector((state: RootState) => state.D3staff.tableInfo) const [formData, setFormData] = useState({ ...DEFAULT_D3STAFF_PARAMS }) const formDataRef = useRef({ ...DEFAULT_D3STAFF_PARAMS }) const formDataOldRef = useRef({ ...DEFAULT_D3STAFF_PARAMS }) const dispatch = useDispatch() const { list: storageIdArr } = useSelector((state: RootState) => state.D2storSet.tableInfo) const D3StaffParamRows = useMemo( () => [ { name: '业务编号', key: 'num', type: '输入框' }, // { name: '入库日期范围', key: 'inDate', type: '日期选择' }, { name: '入库人员类型', key: 'sonTypeName', type: '下拉框', data: selectObj['入库人员类型'] }, { name: '相关库房', key: 'storageInId', type: '下拉框', data: storageIdArr.map(i => ({ label: i.name, value: i.id as number })) }, { name: '发起部门', key: 'deptName', type: '输入框' } ], [storageIdArr] ) // 输入框的改变 const txtChangeFu = useCallback( (txt: string, key: keyof ID3StaffParams) => { setFormData({ ...formData, [key]: txt }) }, [formData] ) // 顶部筛选 const searchDom = useCallback( (arr: D3StaffSearchType[]) => { return arr.map(item => { return (
{item.name}: {item.type === '输入框' ? ( txtChangeFu(e.target.value, item.key)} /> ) : item.type === '下拉框' ? (