shaogen1995 3 miesięcy temu
rodzic
commit
abae6fb4bc

src/pages/A33_ledger/A31register/index.module.scss → src/pages/A3_ledger/A31register/index.module.scss


src/pages/A33_ledger/A31register/index.tsx → src/pages/A3_ledger/A31register/index.tsx


+ 1 - 1
src/pages/C_goodsManage/C1ledger/index.tsx

@@ -88,7 +88,7 @@ function C1ledger() {
     return [
       {
         title: '操作',
-        render: (item: any) => {
+        render: (item: FourTableType) => {
           return (
             <Button size='small' type='text' onClick={() => openGoodsInfoFu(item.id)}>
               查看

+ 3 - 3
src/pages/C_goodsManage/C8recycleBin/index.module.scss

@@ -7,7 +7,7 @@
       display: flex;
       justify-content: space-between;
       .C8topll {
-        width: calc(100% - 150px);
+        width: 1130px;
         display: flex;
         flex-wrap: wrap;
         & > div {
@@ -24,10 +24,10 @@
             pointer-events: none;
           }
           .ant-select {
-            width: 150px;
+            width: 170px;
           }
           .ant-input {
-            width: 150px;
+            width: 170px;
           }
         }
       }

+ 68 - 34
src/pages/C_goodsManage/C8recycleBin/index.tsx

@@ -10,8 +10,14 @@ import MyTable from '@/components/MyTable'
 import { C1tableC } from '@/utils/tableData'
 import Y1cathet from '@/pages/Y_goodsDetails/Y1cathet'
 import MyPopconfirm from '@/components/MyPopconfirm'
+import { useDispatch, useSelector } from 'react-redux'
+import { C8_APIgetList, C8_APIrecover } from '@/store/action/C8recycleBin'
+import { MessageFu } from '@/utils/message'
+import { RootState } from '@/store'
 
 function C8recycleBin() {
+  const dispatch = useDispatch()
+
   const [formData, setFormData] = useState(C8baseFormData)
   const formDataRef = useRef(C8baseFormData)
   useEffect(() => {
@@ -31,8 +37,8 @@ function C8recycleBin() {
 
   // 封装发送请求的函数
   const getListFu = useCallback(() => {
-    console.log('发送请求', formDataRef.current)
-  }, [])
+    dispatch(C8_APIgetList(formDataRef.current))
+  }, [dispatch])
 
   useEffect(() => {
     getListFu()
@@ -67,9 +73,17 @@ function C8recycleBin() {
     },
     [formData]
   )
-  // 待完善 各种参数 接口
 
-  const regainFu = useCallback((id: number) => {}, [])
+  const regainFu = useCallback(
+    async (id: number) => {
+      const res = await C8_APIrecover(id)
+      if (res.code === 0) {
+        MessageFu.success('恢复成功')
+        getListFu()
+      }
+    },
+    [getListFu]
+  )
 
   const tableLastBtn = useMemo(() => {
     return [
@@ -110,37 +124,57 @@ function C8recycleBin() {
     ]
   }, [cathet])
 
+  // 顶部筛选
+  const searchDom = useCallback(
+    (arr: any[]) => {
+      return arr.map(item => {
+        return (
+          <div key={item.name}>
+            <span>{item.name}:</span>
+            {item.type === '输入框' ? (
+              <Input
+                placeholder='请输入'
+                maxLength={30}
+                value={formData[item.key as 'num']}
+                onChange={e => txtChangeFu(e.target.value, item.key)}
+              />
+            ) : item.type === '下拉框' ? (
+              <Select
+                options={item.data}
+                placeholder='全部'
+                allowClear={true}
+                value={formData[item.key as 'num'] ? formData[item.key as 'num'] : null}
+                onChange={e => setFormData({ ...formData, [item.key]: e })}
+              />
+            ) : (
+              <Cascader
+                options={item.data}
+                placeholder='全部'
+                fieldNames={{ label: 'name', value: 'id', children: 'children' }}
+                allowClear={true}
+                value={
+                  formData[item.key as 'num']
+                    ? (formData[item.key as 'num'] as string).split(',')
+                    : []
+                }
+                onChange={e => setFormData({ ...formData, [item.key]: e ? e.join(',') : '' })}
+              />
+            )}
+          </div>
+        )
+      })
+    },
+    [formData, txtChangeFu]
+  )
+
+  // 从仓库拿数据
+  const tableInfo = useSelector((state: RootState) => state.C8recycleBin.tableInfo)
+
   return (
     <div className={styles.C8recycleBin}>
       <div className='pageTitle'>回收站</div>
       <div className='C8top'>
-        <div className='C8topll'>
-          {C1InputKeyArr1.map(item => (
-            <div key={item.name}>
-              <span>{item.name}:</span>
-
-              {item.type === '下拉框' ? <Select placeholder='全部' /> : null}
-              {item.type === '输入框' ? (
-                <Input
-                  placeholder='请输入'
-                  maxLength={30}
-                  value={formData[item.key as 'numName']}
-                  onChange={e => txtChangeFu(e.target.value, item.key)}
-                />
-              ) : null}
-
-              {item.type === '级联' ? (
-                <Cascader
-                  changeOnSelect
-                  options={[]}
-                  placeholder='全部'
-                  // fieldNames={{ label: 'name', value: 'id', children: 'children' }}
-                  allowClear={false}
-                />
-              ) : null}
-            </div>
-          ))}
-        </div>
+        <div className='C8topll'>{searchDom(C1InputKeyArr1)}</div>
         <div className='C8toprr'>
           <Button type='primary' onClick={clickSearch}>
             查询
@@ -153,13 +187,13 @@ function C8recycleBin() {
       {/* 表格 */}
       <MyTable
         yHeight={586}
-        list={[{ id: 66, thumb: '', num: 'xxx' }]}
-        columnsTemp={[...C1tableC, ['txt', '删除日期', 'xxxx']]}
+        list={tableInfo.list}
+        columnsTemp={[...C1tableC, ['txt', '删除日期', 'updateTime']]}
         lastBtn={tableLastBtn}
         startBtn={startBtn}
         pageNum={formData.pageNum}
         pageSize={formData.pageSize}
-        total={0}
+        total={tableInfo.total}
         onChange={(pageNum, pageSize) => paginationChange(pageNum, pageSize)}
       />
 

+ 1 - 1
src/pages/Layout/data.ts

@@ -54,7 +54,7 @@ const tabLeftArr: RouterType = [
         id: 9801,
         name: '藏品总登记帐',
         path: '/machineReg',
-        Com: React.lazy(() => import('../A33_ledger/A31register'))
+        Com: React.lazy(() => import('../A3_ledger/A31register'))
       }
     ]
   },

+ 25 - 0
src/store/action/C8recycleBin.ts

@@ -0,0 +1,25 @@
+import http from '@/utils/http'
+import { AppDispatch } from '..'
+/**
+ * 回收站 - 获取分页列表
+ */
+export const C8_APIgetList = (data: any): any => {
+  return async (dispatch: AppDispatch) => {
+    const res = await http.post('cms/goodsBin/page', data)
+    if (res.code === 0) {
+      const obj = {
+        list: res.data.records,
+        total: res.data.total
+      }
+
+      dispatch({ type: 'C8/getList', payload: obj })
+    }
+  }
+}
+
+/**
+ * 回收站-恢复
+ */
+export const C8_APIrecover = (id: number) => {
+  return http.get(`cms/goodsBin/recover/${id}`)
+}

+ 28 - 0
src/store/reducer/C8recycleBin.ts

@@ -0,0 +1,28 @@
+import { FourTableType } from '@/pages/B_enterTibet/B3_4page/type'
+
+// 初始化状态
+const initState = {
+  // 列表数据
+  tableInfo: {
+    list: [] as FourTableType[],
+    total: 0
+  }
+}
+
+// 定义 action 类型
+type Props = {
+  type: 'C8/getList'
+  payload: { list: FourTableType[]; total: number }
+}
+
+// reducer
+export default function userReducer(state = initState, action: Props) {
+  switch (action.type) {
+    // 获取列表数据
+    case 'C8/getList':
+      return { ...state, tableInfo: action.payload }
+
+    default:
+      return state
+  }
+}

+ 2 - 0
src/store/reducer/index.ts

@@ -7,6 +7,7 @@ import FourAll from './FourAll'
 import C1ledger from './C1ledger'
 import C2files from './C2files'
 import C6edit from './C6edit'
+import C8recycleBin from './C8recycleBin'
 import D2storSet from './D2storSet'
 import D4impStor from './D4impStor'
 import D6putsStor from './D6putsStor'
@@ -25,6 +26,7 @@ const rootReducer = combineReducers({
   C1ledger,
   C2files,
   C6edit,
+  C8recycleBin,
   D2storSet,
   D4impStor,
   D6putsStor,