From 6a2c0e50aabe2c2fda7671d75d7550f12d72e411 Mon Sep 17 00:00:00 2001 From: liuwh <964324856@qq.com> Date: Fri, 13 Sep 2024 19:10:29 +0800 Subject: [PATCH] 修改 --- gz-customerSystem/src/views/register/index.jsx | 155 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 130 insertions(+), 25 deletions(-) diff --git a/gz-customerSystem/src/views/register/index.jsx b/gz-customerSystem/src/views/register/index.jsx index 568d4a1..a2cbdbf 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-12 15:42:34 + * @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: '事项来源', @@ -331,7 +335,7 @@ title: '化解结果', dataIndex: 'mediResult', key: 'mediResult', - width: 80, + width: 100, }, { title: '无法化解理由', @@ -574,7 +578,7 @@ title: '流转时间', dataIndex: 'turnaroundTime', key: 'turnaroundTime', - width: 100, + width: 150, }, { title: '已办天数', @@ -653,7 +657,7 @@ title: '结案申请时间', dataIndex: 'turnaroundTime', key: 'turnaroundTime', - width: 180, + width: 150, }, { title: '事项等级', @@ -689,7 +693,7 @@ title: '化解结果', dataIndex: 'mediResult', key: 'mediResult', - width: 180, + width: 100, }, { title: '申请方', @@ -935,7 +939,7 @@ title: '督办时间', dataIndex: 'turnaroundTime', key: 'turnaroundTime', - width: 100, + width: 150, }, { 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,9 +1109,15 @@ 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(); @@ -1212,7 +1224,7 @@ const getCountData = async () => { const res = await getCountListApi() if (res.type) { - const data = res.data + const data = res.data || {}; setCountData(data) } } @@ -1245,8 +1257,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 +1324,14 @@ } </div> </div> - <div className='VisitWorkBench-middle'> + <div + className='VisitWorkBench-middle' + onKeyUp={(e) => { + if (e.key === 'Enter') { + handleSubmit() + } + }} + > <Tabs activeTab={searchData.status} onChange={handleColumnType} @@ -1288,7 +1347,7 @@ } > <Typography.Paragraph key={item.value}> - {tabActivekey == 5 && + {tabActivekey == '5' && <Radio.Group type='button' value={searchData.type} @@ -1315,7 +1374,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 +1384,7 @@ scroll={{ x: 1300 }} - offsetHeight={153} + offsetHeight={161} loading={loading} pagination={{ current: pageData.page, @@ -1340,15 +1400,60 @@ }} /> </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 style={{ display: 'flex', justifyContent: 'space-evenly', gap: '24px', marginTop: '16px' }}> <div className='bottomTab1' onClick={() => navigate(`/mediate/visit`)}> - <div className='VisitWorkBench-bottom-title' style={{ color: '#206BCD' }}>大厅来访</div> + <div className='VisitWorkBench-bottom-title' style={{ color: '#206BCD' }}>大厅来访</div> {/* <img src={visitInto} alt='' className='VisitWorkBench-bottom-img' /> */} </div> <div className='bottomTab2'> -- Gitblit v1.8.0