|
|
@ -37,7 +37,7 @@ const { RangePicker } = DatePicker; |
|
|
|
//如想在外部调用搜索方法,请通过<TableModule ref={Ref} /> , Ref.current.fetche 的方式调用 |
|
|
|
const TableModule = forwardRef((props, ref) => { |
|
|
|
const { |
|
|
|
className="", |
|
|
|
className = "", |
|
|
|
pagename = "", |
|
|
|
columns = [], //表头 |
|
|
|
tableData = [], //table的数据 |
|
|
@ -50,9 +50,10 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
rowSelection = false, //自定义选择项 |
|
|
|
isExport = true, //是否显示导出按钮 |
|
|
|
diyButton,//右上角自定义按钮 |
|
|
|
diyTotal, // 自定义统计 |
|
|
|
rightButtonGroup = [], //右侧按钮额外的展示,需要传入数组 |
|
|
|
otherData = {}, //额外需要携带的参数,传入对象 |
|
|
|
rowKey="id", //table的key值 |
|
|
|
rowKey = "id", //table的key值 |
|
|
|
userInfo = {},//用户信息页面数据 |
|
|
|
valueChange, |
|
|
|
mandatory, |
|
|
@ -61,12 +62,12 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
limitCon,//自定义限制条件 |
|
|
|
isQuickMenu = [], |
|
|
|
mandatory_name, |
|
|
|
renderAdd=() => {}, |
|
|
|
renderAdd = () => { }, |
|
|
|
pageName = '',//路由名字 |
|
|
|
showSerial = false,// 表格是否显示序号 |
|
|
|
limitType = 0, // 时间限制类型 0无限制, < 0 今天之前不可选, > 0 今天之后不可选 |
|
|
|
limit = 0, // 限制距离今天之前或之后天数 |
|
|
|
rightHeaderCompSlot= null, // 右侧头部插入自定义组件,注意计算并表格样式高度 |
|
|
|
rightHeaderCompSlot = null, // 右侧头部插入自定义组件,注意计算并表格样式高度 |
|
|
|
} = props; |
|
|
|
const [sessionTabList, setSessionTabList] = useSessionStorageState(pageName, { |
|
|
|
value: {} |
|
|
@ -131,25 +132,25 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
|
|
|
|
function onShowSizeChange(pn, page_size) { |
|
|
|
setPageData({ |
|
|
|
pn:1, |
|
|
|
pn: 1, |
|
|
|
page_size: page_size |
|
|
|
}); |
|
|
|
fetch({pn:1,page_size:page_size}) |
|
|
|
fetch({ pn: 1, page_size: page_size }) |
|
|
|
} |
|
|
|
|
|
|
|
function onChange(pn, page_size){ |
|
|
|
if(pageData.page_size == page_size){ |
|
|
|
function onChange(pn, page_size) { |
|
|
|
if (pageData.page_size == page_size) { |
|
|
|
setPageData({ |
|
|
|
pn, |
|
|
|
page_size, |
|
|
|
}); |
|
|
|
fetch({pn,page_size}) |
|
|
|
}else{ |
|
|
|
fetch({ pn, page_size }) |
|
|
|
} else { |
|
|
|
setPageData({ |
|
|
|
pn:1, |
|
|
|
pn: 1, |
|
|
|
page_size: page_size |
|
|
|
}); |
|
|
|
fetch({pn:1,page_size:page_size}) |
|
|
|
fetch({ pn: 1, page_size: page_size }) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -185,12 +186,12 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
} |
|
|
|
// 处理异常 daterange不做处理, 会出现date1.isAfter 方法异常 todo --> datepicker 也会出现这个问题 |
|
|
|
let fv = searchForm.getFieldsValue(); |
|
|
|
Object.keys(fv).map(key=>{ |
|
|
|
if(temp_obj.hasOwnProperty(key) && fv[key]?.length == 2 && fv[key][0]._isAMomentObject){ |
|
|
|
if(temp_obj[key] == null || temp_obj[key].length != 2){ |
|
|
|
temp_obj[key] = initFormData[key] ? initFormData[key] : [] |
|
|
|
}else{ |
|
|
|
temp_obj[key] = [moment(temp_obj[key][0]), moment( temp_obj[key][1])] |
|
|
|
Object.keys(fv).map(key => { |
|
|
|
if (temp_obj.hasOwnProperty(key) && fv[key]?.length == 2 && fv[key][0]._isAMomentObject) { |
|
|
|
if (temp_obj[key] == null || temp_obj[key].length != 2) { |
|
|
|
temp_obj[key] = initFormData[key] ? initFormData[key] : [] |
|
|
|
} else { |
|
|
|
temp_obj[key] = [moment(temp_obj[key][0]), moment(temp_obj[key][1])] |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
@ -198,7 +199,7 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
if (sessionTabList?.plateValue) { |
|
|
|
// temp_obj.carId = sessionTabList.plate2 |
|
|
|
fetchPlateSearch(sessionTabList.plateValue.match(/:(\S*)/)[1], setPlateData, []); |
|
|
|
} |
|
|
|
} |
|
|
|
// if (sessionTabList.start_time) { |
|
|
|
// let temp_obj = { ...sessionTabList, start_time: moment(start_time), end_time: moment(end_time) } |
|
|
|
// if (sessionTabList.plateValue){ |
|
|
@ -217,7 +218,7 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
// searchForm.setFieldsValue({ ...sessionTabList, carId: sessionTabList.plate2 }) |
|
|
|
// } // let start_time = sessionTabList.start_time |
|
|
|
// let end_time = sessionTabList.end_time |
|
|
|
} |
|
|
|
} |
|
|
|
fetch('first') |
|
|
|
}, []) |
|
|
|
useEffect(() => { |
|
|
@ -242,16 +243,16 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
} |
|
|
|
} |
|
|
|
let form = {}; |
|
|
|
if(typeof args1 == 'object'){ |
|
|
|
form = {...searchForm.getFieldsValue(), ...args1, ...otherData, ...updateData} |
|
|
|
}else{ |
|
|
|
form = {...searchForm.getFieldsValue(), ...pageData, ...otherData, ...pnno, ...updateData} |
|
|
|
if (typeof args1 == 'object') { |
|
|
|
form = { ...searchForm.getFieldsValue(), ...args1, ...otherData, ...updateData } |
|
|
|
} else { |
|
|
|
form = { ...searchForm.getFieldsValue(), ...pageData, ...otherData, ...pnno, ...updateData } |
|
|
|
} |
|
|
|
if(args1 == 'first' ){ // 去掉plateData的监听, 避免进入页面多发送一次请求 |
|
|
|
if(sessionTabList?.plate2){ |
|
|
|
form.carId = sessionTabList.plate2 |
|
|
|
if (args1 == 'first') { // 去掉plateData的监听, 避免进入页面多发送一次请求 |
|
|
|
if (sessionTabList?.plate2) { |
|
|
|
form.carId = sessionTabList.plate2 |
|
|
|
} |
|
|
|
if(sessionTabList?.region?.length){ |
|
|
|
if (sessionTabList?.region?.length) { |
|
|
|
form.region = sessionTabList.region |
|
|
|
} |
|
|
|
} |
|
|
@ -283,7 +284,7 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|
if(args1 != 'first'){ |
|
|
|
if (args1 != 'first') { |
|
|
|
if (areaName !== null) form[areaName] = areaSelectedList; |
|
|
|
} |
|
|
|
if (form.deal_time_start !== void 0 && form.deal_time_end !== void 0) {//暂时写法 |
|
|
@ -597,9 +598,9 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
key={item.name} |
|
|
|
> |
|
|
|
{item.hiddenCount ? ( |
|
|
|
<Input placeholder={item.placeholder} autoComplete={item.autoComplete?item.autoComplete:null} />//autoComplete输入框是否显示自动填充 |
|
|
|
<Input placeholder={item.placeholder} autoComplete={item.autoComplete ? item.autoComplete : null} />//autoComplete输入框是否显示自动填充 |
|
|
|
) : ( |
|
|
|
<Input {...inputParams} placeholder={item.placeholder} autoComplete={item.autoComplete?item.autoComplete:null}/> |
|
|
|
<Input {...inputParams} placeholder={item.placeholder} autoComplete={item.autoComplete ? item.autoComplete : null} /> |
|
|
|
)} |
|
|
|
</Form.Item> |
|
|
|
); |
|
|
@ -817,7 +818,7 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
key={item.name} |
|
|
|
initialValue={item.defaultValue} |
|
|
|
> |
|
|
|
<DatePicker.RangePicker allowClear={item.allowClear ? true : false} /> |
|
|
|
<DatePicker.RangePicker allowClear={item.allowClear ? true : false} /> |
|
|
|
</Form.Item> |
|
|
|
) |
|
|
|
break; |
|
|
@ -927,6 +928,9 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
export_file_name: filename, |
|
|
|
} |
|
|
|
} |
|
|
|
if (pageName === "charge") { //特殊情况,充电记录导出 |
|
|
|
form.start_time = moment(form.start_time[0]).format("YYYY-MM-DD") + "," + moment(form.start_time[1]).format("YYYY-MM-DD") |
|
|
|
} |
|
|
|
if (tableData.length != 0) { |
|
|
|
exportAjax({ |
|
|
|
url: exportUrl, |
|
|
@ -1024,11 +1028,11 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
重置 |
|
|
|
</Button> |
|
|
|
<Button type="primary" className="submit" |
|
|
|
onClick={() => { |
|
|
|
if(pageData.pn == 1){ |
|
|
|
fetch(1) |
|
|
|
}else{ |
|
|
|
setPageData({ ...pageData, pn: 1 }) |
|
|
|
onClick={() => { |
|
|
|
if (pageData.pn == 1) { |
|
|
|
fetch(1) |
|
|
|
} else { |
|
|
|
setPageData({ ...pageData, pn: 1 }) |
|
|
|
fetch({ ...pageData, pn: 1 }) |
|
|
|
} |
|
|
|
}}> |
|
|
@ -1058,6 +1062,7 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
<span className="letter">共查询到</span> |
|
|
|
<span className="total-number"> {total}</span> |
|
|
|
<span className="letter">条结果</span> |
|
|
|
{diyTotal ? diyTotal : null} |
|
|
|
</span> |
|
|
|
<div className="right-button-group"> |
|
|
|
{rightButtonGroup.map((item) => item)} |
|
|
@ -1114,7 +1119,7 @@ const TableModule = forwardRef((props, ref) => { |
|
|
|
pageSize={pageData.page_size} |
|
|
|
pageSizeOptions={dictionary?.pageSizeOptions} |
|
|
|
onChange={onChange} |
|
|
|
// onShowSizeChange={onShowSizeChange} |
|
|
|
// onShowSizeChange={onShowSizeChange} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</ResultFlow> |
|
|
@ -1197,7 +1202,7 @@ function InputSelectGroup(params) { |
|
|
|
</Col> |
|
|
|
<Col span={16}> |
|
|
|
<DatePicker |
|
|
|
className="date-group-time" |
|
|
|
className="date-group-time" |
|
|
|
placeholder="请选择开始日期" |
|
|
|
allowClear={false} |
|
|
|
onChange={(val, string) => { |
|
|
|