|
@@ -4,31 +4,33 @@ import { Button, DatePicker, Input, Select } from 'antd'
|
|
|
import { B3_4inputKeyArr, D3InputKeyType } from '@/pages/B_enterTibet/B3_4page'
|
|
|
import dayjs from 'dayjs'
|
|
|
import MyTable from '@/components/MyTable'
|
|
|
-import { D6tableC } from '@/utils/tableData'
|
|
|
+import { D6tableC, statusObj } from '@/utils/tableData'
|
|
|
import MyPopconfirm from '@/components/MyPopconfirm'
|
|
|
-import history from '@/utils/history'
|
|
|
-import { TypeD4Form } from '../D4impStor/type'
|
|
|
+import history, { btnFlagFu } from '@/utils/history'
|
|
|
+import { selectObj } from '@/utils/select'
|
|
|
+import { D3baseFormData } from '../D4impStor'
|
|
|
+import { useDispatch, useSelector } from 'react-redux'
|
|
|
+import { D2_APIgetList } from '@/store/action/D2storSet'
|
|
|
+import { RootState } from '@/store'
|
|
|
+import { MessageFu } from '@/utils/message'
|
|
|
+import { FourTableType } from '@/pages/B_enterTibet/B3_4page/type'
|
|
|
+import ExportJsonExcel from 'js-export-excel'
|
|
|
+import { D6_APIdel, D6_APIgetList } from '@/store/action/D6putsStor'
|
|
|
const { RangePicker } = DatePicker
|
|
|
|
|
|
-const baseFormData: TypeD4Form = {
|
|
|
- pageSize: 10,
|
|
|
- pageNum: 1,
|
|
|
- num: '',
|
|
|
- name: '',
|
|
|
- deptName: '',
|
|
|
- userName: '',
|
|
|
- startTime: '',
|
|
|
- endTime: '',
|
|
|
- status: null,
|
|
|
- userType: null,
|
|
|
- storageInId: null
|
|
|
-}
|
|
|
+function D6putsStor() {
|
|
|
+ const dispatch = useDispatch()
|
|
|
|
|
|
-// 没有接入后端 待完善
|
|
|
+ // 获取入库库房下拉框 - 库房设置列表
|
|
|
+ useEffect(() => {
|
|
|
+ dispatch(D2_APIgetList({ pageNum: 1, pageSize: 99999 }))
|
|
|
+ }, [dispatch])
|
|
|
|
|
|
-function D6putsStor() {
|
|
|
- const [formData, setFormData] = useState(baseFormData)
|
|
|
- const formDataRef = useRef(baseFormData)
|
|
|
+ const { list } = useSelector((state: RootState) => state.D2storSet.tableInfo)
|
|
|
+
|
|
|
+ const [formData, setFormData] = useState(D3baseFormData)
|
|
|
+ const formDataRef = useRef(D3baseFormData)
|
|
|
+ const formDataOldRef = useRef(D3baseFormData)
|
|
|
|
|
|
useEffect(() => {
|
|
|
formDataRef.current = formData
|
|
@@ -61,8 +63,9 @@ function D6putsStor() {
|
|
|
|
|
|
// 封装发送请求的函数
|
|
|
const getListFu = useCallback(() => {
|
|
|
- console.log('发送请求', formDataRef.current)
|
|
|
- }, [])
|
|
|
+ formDataOldRef.current = { ...formDataRef.current }
|
|
|
+ dispatch(D6_APIgetList(formDataRef.current))
|
|
|
+ }, [dispatch])
|
|
|
|
|
|
useEffect(() => {
|
|
|
getListFu()
|
|
@@ -81,7 +84,7 @@ function D6putsStor() {
|
|
|
|
|
|
// 点击重置
|
|
|
const resetSelectFu = useCallback(() => {
|
|
|
- setFormData(baseFormData)
|
|
|
+ setFormData(D3baseFormData)
|
|
|
setTimeout(() => {
|
|
|
setTimeKey(Date.now())
|
|
|
}, 50)
|
|
@@ -101,34 +104,50 @@ function D6putsStor() {
|
|
|
// 点击删除
|
|
|
const delTableFu = useCallback(
|
|
|
async (id: number) => {
|
|
|
- getListFu()
|
|
|
+ const res = await D6_APIdel(id)
|
|
|
+ if (res.code === 0) {
|
|
|
+ MessageFu.success('删除成功')
|
|
|
+ getListFu()
|
|
|
+ }
|
|
|
},
|
|
|
[getListFu]
|
|
|
)
|
|
|
|
|
|
// 点击操作按钮
|
|
|
- const tableBtnFu = useCallback((key: string, id: number) => {
|
|
|
+ const tableBtnFu = useCallback((id: number, key: string) => {
|
|
|
history.push(`/putsStor_edit/${key}/${id}`)
|
|
|
}, [])
|
|
|
|
|
|
const tableLastBtn = useMemo(() => {
|
|
|
- // 看状态和账号角色显示按钮 待完善
|
|
|
return [
|
|
|
{
|
|
|
title: '操作',
|
|
|
- render: (item: any) => {
|
|
|
- return (
|
|
|
+ render: (item: FourTableType) => {
|
|
|
+ let obj = btnFlagFu(item)
|
|
|
+ return !Object.values(obj).some(Boolean) ? (
|
|
|
+ '-'
|
|
|
+ ) : (
|
|
|
<>
|
|
|
- <Button size='small' type='text' onClick={() => tableBtnFu('2', item.id)}>
|
|
|
- 编辑
|
|
|
- </Button>
|
|
|
- <Button size='small' type='text' onClick={() => tableBtnFu('3', item.id)}>
|
|
|
- 审批
|
|
|
- </Button>
|
|
|
- <Button size='small' type='text' onClick={() => tableBtnFu('4', item.id)}>
|
|
|
- 查看
|
|
|
- </Button>
|
|
|
- <MyPopconfirm txtK='删除' onConfirm={() => delTableFu(item.id)} />
|
|
|
+ {obj['编辑'] ? (
|
|
|
+ <Button size='small' type='text' onClick={() => tableBtnFu(item.id, '2')}>
|
|
|
+ 编辑
|
|
|
+ </Button>
|
|
|
+ ) : null}
|
|
|
+
|
|
|
+ {obj['审批'] ? (
|
|
|
+ <Button size='small' type='text' onClick={() => tableBtnFu(item.id, '3')}>
|
|
|
+ 审批
|
|
|
+ </Button>
|
|
|
+ ) : null}
|
|
|
+ {obj['查看'] ? (
|
|
|
+ <Button size='small' type='text' onClick={() => tableBtnFu(item.id, '4')}>
|
|
|
+ 查看
|
|
|
+ </Button>
|
|
|
+ ) : null}
|
|
|
+
|
|
|
+ {obj['删除'] ? (
|
|
|
+ <MyPopconfirm txtK='删除' onConfirm={() => delTableFu(item.id)} />
|
|
|
+ ) : null}
|
|
|
</>
|
|
|
)
|
|
|
}
|
|
@@ -136,6 +155,67 @@ function D6putsStor() {
|
|
|
]
|
|
|
}, [delTableFu, tableBtnFu])
|
|
|
|
|
|
+ // 从仓库拿数据
|
|
|
+ const tableInfo = useSelector((state: RootState) => state.D6putsStor.tableInfo)
|
|
|
+
|
|
|
+ // 点击导出
|
|
|
+ const deriveFu = useCallback(async () => {
|
|
|
+ const name = '藏品出库' + dayjs(new Date()).format('YYYY-MM-DD HH:mm')
|
|
|
+
|
|
|
+ const res = await D6_APIgetList(
|
|
|
+ {
|
|
|
+ ...formDataOldRef.current,
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 99999
|
|
|
+ },
|
|
|
+ true
|
|
|
+ )
|
|
|
+
|
|
|
+ if (res.code === 0) {
|
|
|
+ if (res.data.records.length <= 0) return MessageFu.warning('当前搜索条件没有数据!')
|
|
|
+
|
|
|
+ const option = {
|
|
|
+ fileName: name,
|
|
|
+ datas: [
|
|
|
+ {
|
|
|
+ sheetData: res.data.records.map((v: FourTableType) => ({
|
|
|
+ ...v,
|
|
|
+ status: statusObj[v.status as 1],
|
|
|
+ isReturn: v.isReturn === 1 ? '是' : '否'
|
|
|
+ })),
|
|
|
+ sheetName: name,
|
|
|
+ sheetFilter: [
|
|
|
+ 'num',
|
|
|
+ 'name',
|
|
|
+ 'storageName',
|
|
|
+ 'isReturn',
|
|
|
+ 'returnDate',
|
|
|
+ 'deptName',
|
|
|
+ 'creatorName',
|
|
|
+ 'createTime',
|
|
|
+ 'status'
|
|
|
+ ],
|
|
|
+ sheetHeader: [
|
|
|
+ '业务单号',
|
|
|
+ '申请名称',
|
|
|
+ '入库库房',
|
|
|
+ '是否需要归还',
|
|
|
+ '预计归还日期',
|
|
|
+ '发起部门',
|
|
|
+ '发送人',
|
|
|
+ '发起日期',
|
|
|
+ '申请状态'
|
|
|
+ ],
|
|
|
+ columnWidths: [10, 10, 10, 10, 10, 10, 10, 10, 10]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+
|
|
|
+ const toExcel = new ExportJsonExcel(option) //new
|
|
|
+ toExcel.saveExcel() //保存
|
|
|
+ }
|
|
|
+ }, [])
|
|
|
+
|
|
|
return (
|
|
|
<div className={styles.D6putsStor}>
|
|
|
<div className='pageTitle'>出库</div>
|
|
@@ -155,7 +235,10 @@ function D6putsStor() {
|
|
|
))}
|
|
|
</div>
|
|
|
<div className='D4toprr'>
|
|
|
- <Button type='primary'>批量导出</Button> 
|
|
|
+ <Button type='primary' onClick={deriveFu}>
|
|
|
+ 批量导出
|
|
|
+ </Button>
|
|
|
+  
|
|
|
<Button type='primary' onClick={() => history.push('/putsStor_edit/1/null')}>
|
|
|
新增
|
|
|
</Button>
|
|
@@ -176,21 +259,23 @@ function D6putsStor() {
|
|
|
<div>
|
|
|
<span>申请状态:</span>
|
|
|
<Select
|
|
|
- placeholder='请选择'
|
|
|
+ allowClear={true}
|
|
|
+ placeholder='全部'
|
|
|
style={{ width: 150 }}
|
|
|
value={formData.status}
|
|
|
onChange={e => setFormData({ ...formData, status: e })}
|
|
|
- options={[{ value: '', label: '全部' }]}
|
|
|
+ options={selectObj['申请状态'].filter(v => v.label !== '待盘点')}
|
|
|
/>
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
<span>选择角色:</span>
|
|
|
<Select
|
|
|
+ allowClear={true}
|
|
|
style={{ width: 150 }}
|
|
|
- placeholder='请选择'
|
|
|
- options={[]}
|
|
|
- fieldNames={{ value: 'id', label: 'roleName' }}
|
|
|
+ placeholder='全部'
|
|
|
+ options={selectObj['角色']}
|
|
|
+ // fieldNames={{ value: 'id', label: 'roleName' }}
|
|
|
value={formData.userType}
|
|
|
onChange={e => setFormData({ ...formData, userType: e })}
|
|
|
/>
|
|
@@ -200,11 +285,13 @@ function D6putsStor() {
|
|
|
<span>出库库房:</span>
|
|
|
{/* 拿库房设置的列表 */}
|
|
|
<Select
|
|
|
- placeholder='请选择'
|
|
|
+ allowClear={true}
|
|
|
+ placeholder='全部'
|
|
|
style={{ width: 150 }}
|
|
|
value={formData.storageInId}
|
|
|
onChange={e => setFormData({ ...formData, storageInId: e })}
|
|
|
- options={[{ value: '', label: '全部' }]}
|
|
|
+ fieldNames={{ value: 'id', label: 'name' }}
|
|
|
+ options={list}
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -219,12 +306,12 @@ function D6putsStor() {
|
|
|
{/* 表格 */}
|
|
|
<MyTable
|
|
|
yHeight={610}
|
|
|
- list={[{ id: 66 }]}
|
|
|
+ list={tableInfo.list}
|
|
|
columnsTemp={D6tableC}
|
|
|
lastBtn={tableLastBtn}
|
|
|
pageNum={formData.pageNum}
|
|
|
pageSize={formData.pageSize}
|
|
|
- total={0}
|
|
|
+ total={tableInfo.total}
|
|
|
onChange={(pageNum, pageSize) => paginationChange(pageNum, pageSize)}
|
|
|
/>
|
|
|
</div>
|