|
@@ -1,19 +1,28 @@
|
|
|
-import React, { useCallback, useEffect, useMemo, useState } from 'react'
|
|
|
+import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
|
|
import styles from './index.module.scss'
|
|
|
import { useDispatch, useSelector } from 'react-redux'
|
|
|
-import { B2_APIdel, B2_APIgetList } from '@/store/action/B2exhiLog'
|
|
|
+import { B2_APIdel, B2_APIgetList, B2_APIupdate } from '@/store/action/B2exhiLog'
|
|
|
import { RootState } from '@/store'
|
|
|
import { MessageFu } from '@/utils/message'
|
|
|
-import { B2tableType } from './type'
|
|
|
-import { Button } from 'antd'
|
|
|
+import { B2FromDataType, B2tableType } from './type'
|
|
|
+import { Button, Input, Select, Switch } from 'antd'
|
|
|
import MyPopconfirm from '@/components/MyPopconfirm'
|
|
|
import MyTable from '@/components/MyTable'
|
|
|
import { B2tableC } from '@/utils/tableData'
|
|
|
import B2look from './B2look'
|
|
|
+import { B2selectArr } from './data'
|
|
|
+
|
|
|
+const fromDataBase: B2FromDataType = {
|
|
|
+ searchKey: '',
|
|
|
+ status: '',
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10
|
|
|
+}
|
|
|
+
|
|
|
function B2exhiLog() {
|
|
|
const dispatch = useDispatch()
|
|
|
|
|
|
- const [fromData, setFromData] = useState({ pageNum: 1, pageSize: 10 })
|
|
|
+ const [fromData, setFromData] = useState(fromDataBase)
|
|
|
|
|
|
const getListFu = useCallback(() => {
|
|
|
dispatch(B2_APIgetList(fromData))
|
|
@@ -23,8 +32,33 @@ function B2exhiLog() {
|
|
|
getListFu()
|
|
|
}, [getListFu])
|
|
|
|
|
|
+ const [inputKey, setInputKey] = useState(1)
|
|
|
+
|
|
|
+ // 输入框的输入
|
|
|
+ const timeRef = useRef(-1)
|
|
|
+ const txtChangeFu = useCallback(
|
|
|
+ (e: React.ChangeEvent<HTMLInputElement>, key: 'searchKey') => {
|
|
|
+ clearTimeout(timeRef.current)
|
|
|
+ timeRef.current = window.setTimeout(() => {
|
|
|
+ setFromData({
|
|
|
+ ...fromData,
|
|
|
+ [key]: e.target.value.replaceAll("'", ''),
|
|
|
+ pageNum: 1
|
|
|
+ })
|
|
|
+ }, 500)
|
|
|
+ },
|
|
|
+ [fromData]
|
|
|
+ )
|
|
|
+
|
|
|
+ // 点击重置
|
|
|
+ const resetSelectFu = useCallback(() => {
|
|
|
+ setInputKey(Date.now())
|
|
|
+ setFromData(fromDataBase)
|
|
|
+ }, [])
|
|
|
+
|
|
|
const { tableInfo } = useSelector((state: RootState) => state.B2exhiLog)
|
|
|
|
|
|
+ // 点击删除
|
|
|
const delTableFu = useCallback(
|
|
|
async (id: number) => {
|
|
|
const res = await B2_APIdel(id)
|
|
@@ -36,9 +70,32 @@ function B2exhiLog() {
|
|
|
[getListFu]
|
|
|
)
|
|
|
|
|
|
+ // 核销
|
|
|
+ const updateFu = useCallback(
|
|
|
+ async (id: number, status: 0 | 1) => {
|
|
|
+ const res = await B2_APIupdate(id, status)
|
|
|
+ if (res.code === 0) {
|
|
|
+ MessageFu.success('操作成功!')
|
|
|
+ getListFu()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ [getListFu]
|
|
|
+ )
|
|
|
+
|
|
|
const tableLastBtn = useMemo(() => {
|
|
|
return [
|
|
|
{
|
|
|
+ title: '核销状态',
|
|
|
+ render: (item: B2tableType) => (
|
|
|
+ <Switch
|
|
|
+ checkedChildren='已核销'
|
|
|
+ unCheckedChildren='未核销'
|
|
|
+ value={item.status === 1}
|
|
|
+ onChange={() => updateFu(item.id, item.status === 1 ? 0 : 1)}
|
|
|
+ />
|
|
|
+ )
|
|
|
+ },
|
|
|
+ {
|
|
|
title: '操作',
|
|
|
render: (item: B2tableType) => (
|
|
|
<>
|
|
@@ -51,7 +108,7 @@ function B2exhiLog() {
|
|
|
)
|
|
|
}
|
|
|
]
|
|
|
- }, [delTableFu])
|
|
|
+ }, [delTableFu, updateFu])
|
|
|
|
|
|
// 点击查看
|
|
|
const [lookId, setLookId] = useState(0)
|
|
@@ -60,8 +117,36 @@ function B2exhiLog() {
|
|
|
<div className={styles.B2exhiLog}>
|
|
|
<div className='pageTitle'>展馆预约记录</div>
|
|
|
|
|
|
+ <div className='B2top'>
|
|
|
+ <div className='B2top1'>
|
|
|
+ <div className='B2topRow'>
|
|
|
+ <span>搜索:</span>
|
|
|
+ <Input
|
|
|
+ key={inputKey}
|
|
|
+ maxLength={50}
|
|
|
+ style={{ width: 200 }}
|
|
|
+ placeholder='请输入姓名/联系电话'
|
|
|
+ allowClear
|
|
|
+ onChange={e => txtChangeFu(e, 'searchKey')}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div className='B2topRow'>
|
|
|
+ <span>核销状态:</span>
|
|
|
+ <Select
|
|
|
+ style={{ width: 200 }}
|
|
|
+ value={fromData.status}
|
|
|
+ onChange={e => setFromData({ ...fromData, pageNum: 1, status: e })}
|
|
|
+ options={B2selectArr}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div className='B2top1'>
|
|
|
+ <Button onClick={resetSelectFu}>重置</Button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
<MyTable
|
|
|
- yHeight={700}
|
|
|
+ yHeight={626}
|
|
|
list={tableInfo.list}
|
|
|
columnsTemp={B2tableC}
|
|
|
lastBtn={tableLastBtn}
|