return ( <div> <Space direction="vertical" size="large" style={{display: 'flex', marginTop: '1%'}}> <QueryFilter> <div> <span> 日期: </span> <DatePicker style={{width: '80%'}} onChange={onChange} disabledDate={disabledDate} defaultValue={dayjs()} /> </div> </QueryFilter> <ProTable<API.BatteryInformationControl, API.queryBatteryInformationControlParams & API.PageParams > headerTitle={'深圳市能源换电业务电池总体情况'} rowKey="" bordered search={false} // scroll={{x:true}} scroll={{x: 'max-content', y: 700}} request={async (params) => { const body = { dataQueryTime: selectedDate } console.log(body); const res = await queryBatteryInformationManagement(body); console.log(res); setSummaryData(res) return res }} options={{ // show: true, density: true, fullScreen: true, setting: true, } } columns={columns} summary={ () => ( <> <ProTable.Summary.Row className='total' style={{textAlign: 'center'}}> {/* 合计行内容 */} <ProTable.Summary.Cell colSpan={2} index={0} >总计</ProTable.Summary.Cell> <ProTable.Summary.Cell index={2}>{summaryData && summaryData.total}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={3}>43</ProTable.Summary.Cell> </ProTable.Summary.Row> </> )} /> </Space> </div> )如何把datepicker时间选择器的值,用于作为protable组件的搜索条件
时间: 2024-04-14 14:27:32 浏览: 194
你可以将DatePicker组件的onChange事件处理函数中的值传递给ProTable组件的request属性中的params参数。具体实现如下:
首先,在函数组件中定义一个状态变量来保存DatePicker选择的日期,例如:
```jsx
const [selectedDate, setSelectedDate] = useState(dayjs()); // 初始值可根据需求设置
```
然后,在DatePicker组件中添加onChange事件处理函数,将选择的日期更新到状态变量中,例如:
```jsx
<DatePicker
style={{width: '80%'}}
onChange={(date) => setSelectedDate(date)}
disabledDate={disabledDate}
defaultValue={dayjs()}
/>
```
最后,在ProTable组件的request属性中使用selectedDate作为查询参数的值,例如:
```jsx
request={async (params) => {
const body = {
dataQueryTime: selectedDate
}
const res = await queryBatteryInformationManagement(body);
setSummaryData(res);
return res;
}}
```
这样,当选择日期发生改变时,ProTable组件会根据选择的日期进行搜索。
相关问题
return ( <div> <Space direction="vertical" size="large" style={{display: 'flex', marginTop: '1%'}}> <div> <span> 日期: </span> <DatePicker style={{width: '20%'}} onChange={onChange} disabledDate={disabledDate} defaultValue={dayjs()} /> </div> <ProTable<API.EleYj, API.getEleYjByConditionParams & API.PageParams> headerTitle={'深圳市能源换电业务电池总体情况'} rowKey="" bordered search={false} // scroll={{x:true}} scroll={{x: 'max-content', y: 700}} request={async (params) => { // console.log(params); const res = await getEleYjByCondition(params); console.log(res); return res }} options={{ // show: true, density: true, fullScreen: true, setting: true, } } columns={columns} summary={ () => ( <> <ProTable.Summary.Row className='total' style={{textAlign: 'center'}}> {/* 合计行内容 */} <ProTable.Summary.Cell colSpan={2} index={0} >总计</ProTable.Summary.Cell> <ProTable.Summary.Cell index={2}>123</ProTable.Summary.Cell> </ProTable.Summary.Row> </> )} /> </Space> </div> )如何将res的值渲染到ProTable.Summary.Cell上
要将res的值渲染到ProTable.Summary.Cell上,您可以通过在ProTable.Summary.Cell的子组件中使用res的值来实现。在您的代码中,您可以将返回的res值存储在组件的state中,并在ProTable.Summary.Cell的子组件中使用该state值进行渲染。
首先,您需要在组件中添加一个state来存储res的值。可以使用useState钩子函数来实现:
```jsx
import React, { useState } from 'react';
// 在组件中添加state
const [summaryData, setSummaryData] = useState(null);
// 修改请求函数,将返回的res值存储到state中
request={async (params) => {
const res = await getEleYjByCondition(params);
setSummaryData(res); // 存储res的值到state中
return res;
}}
```
然后,在ProTable.Summary.Cell的子组件中使用summaryData的值来进行渲染:
```jsx
<ProTable.Summary.Row className='total' style={{textAlign: 'center'}}>
{/* 合计行内容 */}
<ProTable.Summary.Cell colSpan={2} index={0} >总计</ProTable.Summary.Cell>
<ProTable.Summary.Cell index={2}>{summaryData && summaryData.total}</ProTable.Summary.Cell> {/* 使用summaryData的值进行渲染 */}
</ProTable.Summary.Row>
```
这样,当请求返回后,summaryData的值会更新,从而触发组件重新渲染,并将最新的res值显示在ProTable.Summary.Cell上。请注意,在使用summaryData之前,先进行了null值的检查,以避免出现渲染错误。
{classformlist.value?.map((item: any) => { return classformlist.value.length > 0 ? ( <div class="classroom"> <div class="classroom-name">{item.Name}</div> <div class="classroom-content"> <ClockCircleOutlined /> <span class="classtext"> 时间:{item.BeginTime + '-' + item.EndTime.substr(10, 14)} </span> </div> <div class="classroom-content"> <ClockCircleOutlined /> <span class="classtext">地点:{item.Address}</span> </div> <div class="classroom-content"> <ClockCircleOutlined /> <span class="classtext">线上地址:{item.OnlineAddress}</span> </div> <div class="classroom-content"> <ClockCircleOutlined /> <span class="classtext">备注:{item.Remark}</span> </div> </div> ) : ( <Empty description={<p style={{ marginTop: '40px' }}>暂无回复</p>} image={<Icon size={160} type="icon_wutaolun"></Icon>} ></Empty> ); })}为什么暂无回复没有在页面中显示
根据代码片段来看,如果`classformlist.value`为空数组,则`Empty`组件会被渲染,否则会渲染`classroom`组件。但是,如果`classformlist.value`是`undefined`或`null`,则不会渲染任何内容,也就是说不会渲染`Empty`组件。因此,你需要确保`classformlist.value`有一个初始值,例如空数组`[]`,以便在页面中正确地渲染`Empty`组件。
阅读全文