From b5aeb5f89a5af2af1ea8cc4a83a72b287916e710 Mon Sep 17 00:00:00 2001 From: zhangyongtian <1181606322@qq.com> Date: Sun, 15 Sep 2024 16:27:42 +0800 Subject: [PATCH] fix: 首页页码问题、申请结案问题 --- gz-customerSystem/src/views/register/index.jsx | 197 +++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 159 insertions(+), 38 deletions(-) diff --git a/gz-customerSystem/src/views/register/index.jsx b/gz-customerSystem/src/views/register/index.jsx index f4c8f52..31fb16e 100644 --- a/gz-customerSystem/src/views/register/index.jsx +++ b/gz-customerSystem/src/views/register/index.jsx @@ -1,22 +1,25 @@ /* * @Author: dminyi 1301963064@qq.com * @Date: 2024-09-08 15:14:12 - * @LastEditors: dminyi 1301963064@qq.com - * @LastEditTime: 2024-09-10 23:36:06 + * @LastEditors: lwh + * @LastEditTime: 2024-09-13 10:35:03 * @FilePath: \gzDyh\gz-customerSystem\src\views\register\index.jsx * @Description: 工作台 */ import React, { useEffect, useState, useRef } from 'react'; import { useNavigate } from 'react-router-dom'; -import { tab1, tab2, tab3, tab4, tab5, tab6, visitInto, checkInto } from '@/assets/images' +import { tab1, tab2, tab3, tab4, tab5, tab6 } from '@/assets/images' import TableView from '../../components/TableView'; import { Space } from 'antd'; -import { Tabs, Typography, Radio } from '@arco-design/web-react'; +import { Tabs, Typography, Radio, Form, Input, DatePicker, Button, Grid, Modal } from '@arco-design/web-react'; import * as $$ from '@/utils/utility'; import './index.less'; - +const FormItem = Form.Item; const TabPane = Tabs.TabPane; +const { RangePicker } = DatePicker; +const Row = Grid.Row; +const Col = Grid.Col; //工作总览数据 function getCountListApi(data) { @@ -58,13 +61,14 @@ return $$.ax.request({ url: `caseTask/pageMyTaskDb`, type: 'get', service: 'mediate', data }); } -//签收 +//签收接口 function signApi(data) { return $$.ax.request({ url: `caseTask/sign`, type: 'post', service: 'mediate', data }); } const VisitWorkBench = () => { const navigate = useNavigate(); + const formRef = useRef(); // 静态数据 //分派表头 @@ -73,7 +77,7 @@ title: '流转时间', dataIndex: 'turnaroundTime', key: 'turnaroundTime', - width: 100, + width: 150, }, { title: '分派时限', @@ -121,7 +125,7 @@ title: '流转时间', dataIndex: 'turnaroundTime', key: 'turnaroundTime', - width: 100, + width: 150, }, { title: '签收时限', @@ -136,7 +140,7 @@ title: '事项等级', dataIndex: 'caseGrade', key: 'caseGrade', - width: 80, + width: 100, }, { title: '事项来源', @@ -169,7 +173,7 @@ title: '流转时间', dataIndex: 'turnaroundTime', key: 'turnaroundTime', - width: 100, + width: 150, }, { title: '受理时限', @@ -184,7 +188,7 @@ title: '事项等级', dataIndex: 'caseGrade', key: 'caseGrade', - width: 80, + width: 100, }, { title: '事项来源', @@ -221,8 +225,8 @@ }, { title: '回退部门', - dataIndex: 'backUnit', - key: 'backUnit', + dataIndex: 'organizingUnit', + key: 'organizingUnit', width: 150, }, { @@ -331,7 +335,7 @@ title: '化解结果', dataIndex: 'mediResult', key: 'mediResult', - width: 80, + width: 100, }, { title: '无法化解理由', @@ -567,14 +571,14 @@ }, tabList: [ { - value: '0', + value: '2', label: '办理中', columns: [ { title: '流转时间', dataIndex: 'turnaroundTime', key: 'turnaroundTime', - width: 100, + width: 150, }, { title: '已办天数', @@ -646,14 +650,14 @@ ] }, { - value: '1', + value: '0', label: '结案申请', columns: [ { title: '结案申请时间', dataIndex: 'turnaroundTime', key: 'turnaroundTime', - width: 180, + width: 150, }, { title: '事项等级', @@ -689,7 +693,7 @@ title: '化解结果', dataIndex: 'mediResult', key: 'mediResult', - width: 180, + width: 100, }, { title: '申请方', @@ -718,7 +722,7 @@ ] }, { - value: '2', + value: '1', label: '已结案', columns: [ { @@ -844,7 +848,7 @@ render: (text, record) => ( <Space style={{ color: '#1A6FB8' }}> <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div> - <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>审核</div> + <div onClick={() => navigate(`/mediate/visit/closingReview?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>审核</div> </Space> ), }]), @@ -935,7 +939,7 @@ title: '督办时间', dataIndex: 'turnaroundTime', key: 'turnaroundTime', - width: 100, + width: 150, }, { title: '回复时限', @@ -950,7 +954,7 @@ title: '督办部门', dataIndex: 'caseGrade', key: 'caseGrade', - width: 80, + width: 110, }, { title: '督办意见', @@ -1016,7 +1020,7 @@ title: '督办部门', dataIndex: 'caseGrade', key: 'caseGrade', - width: 80, + width: 110, }, { title: '督办意见', @@ -1094,6 +1098,8 @@ }) const [total, setTotal] = useState(0);//表格数据总数量 const [loading, setLoading] = useState(false);//表格loading + const [selectedRowKeys, setSelectedRowKeys] = useState([]);//批量签收的id + const [selectedRows, setSelectedRows] = useState([]);//批量签收的数据 useEffect(() => { getCountData(); @@ -1103,13 +1109,20 @@ getTableData(tabActivekey) }, [searchData, pageData]) + //批量选择 + const onSelectChange = (newSelectedRowKeys, selectedRows) => { + setSelectedRowKeys(newSelectedRowKeys); + setSelectedRows(selectedRows) + } + //签收 const handleSign = async (caseId, ownerId) => { - const res = await signApi({ caseId: caseId, caseTaskId: ownerId }) + const res = await signApi([{ caseId: caseId, caseTaskId: ownerId }]) if (res.type) { $$.infoSuccess({ content: '签收成功' }); getCountData(); getTableData(tabActivekey) + navigate(`/mediate/visit/eventFlow?caseTaskId=${ownerId}&caseId=${caseId}`) } } @@ -1138,7 +1151,7 @@ break; case '4'://办理中 const { status, ...most } = searchData - if (status && status === '0') { + if (status && status === '2') { res = await pageMyTaskBlzApi({ ...pageData, ...most @@ -1175,6 +1188,10 @@ //改变tab const handleColumnType = (type) => { + setPageData({ + page: 1, + size: 10, + }) setSearchData({ ...searchData, status: type @@ -1183,6 +1200,10 @@ //改变工作总览 const tabActive = (key, data) => { + setPageData({ + page: 1, + size: 10, + }) //默认第一个tab if (key == '5') { setSearchData({ @@ -1191,7 +1212,13 @@ status: '0', type: 1 }) - } else if (key == '4' || key == '6') { + } else if (key == '4') { + setSearchData({ + sortType: 1, + sortColmn: 1, + status: '2', + }) + } else if (key == '6') { setSearchData({ sortType: 1, sortColmn: 1, @@ -1206,13 +1233,14 @@ } setTabActivekey(key); setTableTab(data.tabList) + getCountData(); } //获取工作总览数据 const getCountData = async () => { const res = await getCountListApi() if (res.type) { - const data = res.data + const data = res.data || {}; setCountData(data) } } @@ -1245,8 +1273,48 @@ } } + //查询 + const handleSubmit = () => { + const data = formRef.current.getFieldsValue(); + const { time, ...rest } = data + setSearchData({ + ...searchData, + timeStart: time ? time[0] : '', + timeEnd: time ? time[1] : '', + ...rest + }) + } + + //批量签收 + const handleBatchQs = () => { + console.log(selectedRows); + const paramsList = selectedRows.map(item => { + return { + caseId: item.caseId, + caseTaskId: item.ownerId + } + }) + Modal.confirm({ + title: '签收确认', + content: '确认批量签收?', + onOk: async () => { + const res = await signApi(paramsList) + if (res.type) { + $$.infoSuccess({ content: '批量签收成功成功!' }); + getCountData(); + getTableData(tabActivekey) + } + }, + }); + } + + const rowSelection = { + selectedRowKeys: selectedRowKeys, + onChange: onSelectChange, + } + return ( - <div className='VisitWorkBench'> + <div className='VisitWorkBench' > <div className='VisitWorkBench-top'> <span style={{ fontWeight: 600 }}>工作总览</span> <div className='VisitWorkBench-top-list'> @@ -1272,7 +1340,14 @@ } </div> </div> - <div className='VisitWorkBench-middle'> + <div + className='VisitWorkBench-middle' + onKeyUp={(e) => { + if (e.key === 'Enter') { + handleSubmit() + } + }} + > <Tabs activeTab={searchData.status} onChange={handleColumnType} @@ -1287,8 +1362,8 @@ </span> } > - <Typography.Paragraph key={item.value}> - {tabActivekey == 5 && + <Typography.Paragraph key={tabActivekey + item.value}> + {tabActivekey == '5' && <Radio.Group type='button' value={searchData.type} @@ -1315,7 +1390,8 @@ /> } <TableView - columns={tabActivekey == 5 ? item.columnsMap[searchData.type] : item.columns} + rowSelection={tabActivekey == '2' && item.value === '1' ? rowSelection : null} + columns={tabActivekey == '5' ? item.columnsMap[searchData.type] : item.columns} dataSource={tableData} size="small" rowKey="caseId" @@ -1324,7 +1400,7 @@ scroll={{ x: 1300 }} - offsetHeight={153} + offsetHeight={161} loading={loading} pagination={{ current: pageData.page, @@ -1334,24 +1410,69 @@ setPageData({ ...pageData, page, - pageSize + size: pageSize }) }, }} /> </Typography.Paragraph> + { + (tabActivekey == '2' && item.value === '1') && <div className='VisitWorkBench-middle-select'> + <span>已选{selectedRowKeys.length}项</span> + <span className='linkBtnColor' onClick={() => { + setSelectedRowKeys([]) + setSelectedRows([]) + }}>取消</span> + <span className='linkBtnColor' onClick={handleBatchQs}>批量签收</span> + </div> + } </TabPane> })} </Tabs> + <div className='VisitWorkBench-middle-search'> + <Form + ref={formRef} + layout="vertical" + > + <div style={{ display: 'flex' }}> + <FormItem + label=' ' + field='time' + > + <RangePicker + style={{ width: '100%' }} + format='YYYY-MM-DD HH:mm' + showTime={true} + /> + </FormItem> + <FormItem + label=' ' + field='partyName' + > + <Input + allowClear + placeholder='查询申请方/被申请方关键词' + /> + </FormItem> + <Button + type="primary" + className="dialogPrimary" + onClick={handleSubmit} + > + 查询 + </Button> + </div> + </Form> + </div> </div> <div className='VisitWorkBench-bottom'> 群众来访接待 <div style={{ display: 'flex', justifyContent: 'space-evenly', gap: '24px', marginTop: '16px' }}> - <div className='bottomTab1' style={{ cursor: 'pointer' }}> - <div className='VisitWorkBench-bottom-title' onClick={() => { navigate(`/mediate/visit`) }} style={{ color: '#206BCD' }}>大厅来访</div> + <div className='bottomTab1' onClick={() => navigate(`/mediate/visit`)}> + <div className='VisitWorkBench-bottom-title' style={{ color: '#206BCD' }}>大厅来访</div> {/* <img src={visitInto} alt='' className='VisitWorkBench-bottom-img' /> */} </div> - <div className='bottomTab2' style={{ cursor: 'pointer' }}> + <div className='bottomTab2' onClick={() => navigate(`/mediate/selfInspection`)}> <div className='VisitWorkBench-bottom-title' style={{ color: '#D46B08' }}>自行排查</div> {/* <img src={checkInto} alt='' className='VisitWorkBench-bottom-img' /> */} </div> -- Gitblit v1.8.0