8 changed files with 1241 additions and 959 deletions
-
222src/components/ParkingRecordModal/RecordReviewModal.jsx
-
14src/components/ParkingRecordModal/VehicleInformation.jsx
-
9src/components/ParkingRecordModal/index.jsx
-
34src/components/ParkingRecordModal/index.scss
-
855src/pages/FinancialMgm/ExceptionDeal/DealRecordAudit/index.jsx
-
877src/pages/FinancialMgm/ExceptionDeal/DealRecordList/index.jsx
-
143src/pages/FinancialMgm/ExceptionDeal/StartExceptionDeal/index.jsx
-
46src/services/FinancialMgm/exceptionDeal.js
@ -1,453 +1,450 @@ |
|||
import React, { useState, useRef, useEffect } from "react"; |
|||
import { message, Pagination, Table, Select, Input, Cascader, DatePicker, Button, Popover } from "antd"; |
|||
import { dictionary, utils } from "@/config/common"; |
|||
import { message, Pagination, Table, Select, Input, DatePicker, Button } from "antd"; |
|||
import { dictionary } from "@/config/common"; |
|||
import moment from "moment"; |
|||
import { useSessionStorageState, useUpdateEffect } from "ahooks"; |
|||
import { useSessionStorageState } from "ahooks"; |
|||
import ajax from "@/services"; |
|||
import { QuickMenu, ParkingRecordModal } from "@/components"; |
|||
import { QuickMenu } from "@/components"; |
|||
import RecordReviewModal from "@/components/ParkingRecordModal/RecordReviewModal"; |
|||
import "./index.scss"; |
|||
import errorImg from "@/assets/images/layout/error.png"; |
|||
import { useLocation } from "react-router-dom"; |
|||
function DealRecordAudit() { |
|||
// 默认数据 |
|||
const defaultData = { |
|||
park_id: "", // 停车订单ID |
|||
operator: 0, // 商户名称 |
|||
region: [0], // 区域 |
|||
road: "", // 车场名称 |
|||
road_type: 0, // 车场类型 |
|||
plate: "", // 车牌号 |
|||
type: 1, // 出入场类型 1: 入场 2: 出场 |
|||
start_time: moment().subtract(7, "days").startOf("day").format("YYYY-MM-DD HH:mm:ss"), // 开始时间 |
|||
end_time: moment().format("YYYY-MM-DD HH:mm:ss"), // 结束时间 |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0] |
|||
}; |
|||
// 默认数据 |
|||
const defaultData = { |
|||
deal_record_id: "", // 处理记录ID |
|||
business_type: 0, // 业务订单类型 |
|||
park_id: "", // 业务订单ID |
|||
start_time: moment().subtract(7, "days").startOf("day").format("YYYY-MM-DD HH:mm:ss"), // 开始时间 |
|||
end_time: moment().format("YYYY-MM-DD HH:mm:ss"), // 结束时间 |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0] |
|||
}; |
|||
|
|||
const [formData, setFormData] = useState(defaultData); // 表单数据 |
|||
const [operatorList, setOperatorList] = useState([{ value: 0, label: "全部" }]); //商户名称 |
|||
const [areaList, setAreaList] = useState([]); //区域的下拉数据 |
|||
const [loading, setLoading] = useState(false); // 检索按钮加载状态 |
|||
const [tableSelectCheck, setTableSelectCheck] = useState([]); // 列表选中的停车订单id |
|||
const [parkingRecordModal, setParkingRecordModal] = useState({ open: false, tableData: {} }); // 详情弹框 |
|||
const [formData, setFormData] = useState(defaultData); // 表单数据 |
|||
const [sessionData, setSessionData] = useSessionStorageState("dealRecordAudit", {value: {}}); // session缓存 |
|||
const [loading, setLoading] = useState(false); // 检索按钮加载状态 |
|||
const [recordReviewModal, setRecordReviewModal] = useState({open: false, data: []}); // 订单记录审核数据 |
|||
const [processViewData, setProcessViewData] = useState({}); // 查看流程数据 |
|||
const [auditSubmitId, setAuditSubmitId] = useState(""); // 提交 退回审核的id |
|||
|
|||
// 表格返回数据 |
|||
const [resultData, setResultData] = useState({ |
|||
total: 0, |
|||
list: [], |
|||
}); |
|||
// 表格返回数据 |
|||
const [resultData, setResultData] = useState({ |
|||
total: 0, |
|||
list: [], |
|||
}); |
|||
|
|||
//列表 |
|||
const tableColumns = [ |
|||
{ |
|||
title: "序号", |
|||
width: 60, |
|||
align: "center", |
|||
fixed: 'left', |
|||
render: (text, record, index) => index + 1, |
|||
}, |
|||
{ |
|||
title: "处理记录ID", |
|||
dataIndex: "deal_record_id", |
|||
key: "deal_record_id", |
|||
width: 200, |
|||
align: "center", |
|||
fixed: 'left', |
|||
render: (text) => ( |
|||
<> |
|||
<a onClick={() => { |
|||
navigator.clipboard.writeText(`${text}`).then(() => { message.success("已复制到剪切板") }); |
|||
}}>{text}</a> |
|||
</> |
|||
), |
|||
}, |
|||
{ |
|||
title: "处理时间", |
|||
dataIndex: "deal_time", |
|||
key: "deal_time", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "处理人", |
|||
dataIndex: "dealer", |
|||
key: "dealer", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "业务订单类型", |
|||
dataIndex: "business_type", |
|||
key: "business_type", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "业务订单ID", |
|||
dataIndex: "park_id", |
|||
key: "park_id", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "更改项", |
|||
dataIndex: "change_content", |
|||
key: "change_content", |
|||
align: "center", |
|||
width: 150, |
|||
render: (text, record, index) => { |
|||
let content = '' |
|||
switch (text) { |
|||
case 1: |
|||
content = "调整出场时间" |
|||
break; |
|||
case 2: |
|||
content = "变更车牌号" |
|||
break; |
|||
case 3: |
|||
content = "更改订单金额" |
|||
break; |
|||
case 4: |
|||
content = "免费该订单" |
|||
break; |
|||
case 5: |
|||
content = "作废该订单" |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
return <>{content}</> |
|||
}, |
|||
}, |
|||
{ |
|||
title: "更改项初始值", |
|||
dataIndex: "initial_value", |
|||
key: "initial_value", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "更改项更新值", |
|||
dataIndex: "update_value", |
|||
key: "update_value", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "状态", |
|||
dataIndex: "status", |
|||
key: "status", |
|||
align: "center", |
|||
width: 150, |
|||
render: (text, record, index) => { |
|||
let content = '--' |
|||
switch (text) { |
|||
case 1: |
|||
content = "待审核" |
|||
break; |
|||
case 2: |
|||
content = "已完成" |
|||
break; |
|||
case 3: |
|||
content = "已驳回" |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
return <>{content}</> |
|||
}, |
|||
}, |
|||
{ |
|||
title: '操作', |
|||
key: 'operation', |
|||
dataIndex: 'operation', |
|||
align: "center", |
|||
fixed: 'right', |
|||
width: 100, |
|||
render: (text, record, index) => { |
|||
return <> |
|||
<Popover |
|||
overlayClassName="start-exception-deal-operate" |
|||
content={ |
|||
<div className="operateBtn operate-btn" style={{ cursor: "pointer" }} trigger="hover"> |
|||
<div className="hover" onClick={() => { setParkingRecordModal({ open: true, tableData: record || {} }) }}>查看</div> |
|||
{record?.status_now == 2 ? |
|||
<div className="disabled">处理中</div> : |
|||
<div className="hover" onClick={() => { console.log("处理"); }}>处理</div> |
|||
} |
|||
</div> |
|||
} |
|||
> |
|||
<Button type="primary">操作</Button> |
|||
</Popover> |
|||
</> |
|||
}, |
|||
}, |
|||
]; |
|||
//列表 |
|||
const tableColumns = [ |
|||
{ |
|||
title: "序号", |
|||
width: 60, |
|||
align: "center", |
|||
fixed: 'left', |
|||
render: (text, record, index) => index + 1, |
|||
}, |
|||
{ |
|||
title: "处理记录ID", |
|||
dataIndex: "deal_record_id", |
|||
key: "deal_record_id", |
|||
width: 200, |
|||
align: "center", |
|||
fixed: 'left', |
|||
render: (text) => ( |
|||
<> |
|||
<a onClick={() => { |
|||
navigator.clipboard.writeText(`${text}`).then(() => { message.success("已复制到剪切板") }); |
|||
}}>{text}</a> |
|||
</> |
|||
), |
|||
}, |
|||
{ |
|||
title: "处理时间", |
|||
dataIndex: "deal_time", |
|||
key: "deal_time", |
|||
align: "center", |
|||
width: 200, |
|||
}, |
|||
{ |
|||
title: "处理人", |
|||
dataIndex: "dealer", |
|||
key: "dealer", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "业务订单类型", |
|||
dataIndex: "business_type", |
|||
key: "business_type", |
|||
align: "center", |
|||
width: 120, |
|||
}, |
|||
{ |
|||
title: "业务订单ID", |
|||
dataIndex: "park_id", |
|||
key: "park_id", |
|||
align: "center", |
|||
width: 200, |
|||
render: (text) => ( |
|||
<> |
|||
<a onClick={() => { |
|||
navigator.clipboard.writeText(`${text}`).then(() => { message.success("已复制到剪切板") }); |
|||
}}>{text}</a> |
|||
</> |
|||
), |
|||
}, |
|||
{ |
|||
title: "更改项", |
|||
dataIndex: "change_content", |
|||
key: "change_content", |
|||
align: "center", |
|||
width: 150, |
|||
// render: (text, record, index) => { |
|||
// let content = '' |
|||
// switch (text) { |
|||
// case 1: |
|||
// content = "调整出场时间" |
|||
// break; |
|||
// case 2: |
|||
// content = "变更车牌号" |
|||
// break; |
|||
// case 3: |
|||
// content = "更改订单金额" |
|||
// break; |
|||
// case 4: |
|||
// content = "免费该订单" |
|||
// break; |
|||
// case 5: |
|||
// content = "作废该订单" |
|||
// break; |
|||
// default: |
|||
// break; |
|||
// } |
|||
// return <>{content}</> |
|||
// }, |
|||
}, |
|||
{ |
|||
title: "更改项初始值", |
|||
dataIndex: "initial_value", |
|||
key: "initial_value", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "更改项更新值", |
|||
dataIndex: "update_value", |
|||
key: "update_value", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "状态", |
|||
dataIndex: "status", |
|||
key: "status", |
|||
align: "center", |
|||
width: 150, |
|||
render: (text, record, index) => { |
|||
let content = '--' |
|||
switch (text) { |
|||
case "1": |
|||
content = "待审核" |
|||
break; |
|||
case "2": |
|||
content = "已完成" |
|||
break; |
|||
case "3": |
|||
content = "已驳回" |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
return <>{content}</> |
|||
}, |
|||
}, |
|||
{ |
|||
title: '操作', |
|||
key: 'operation', |
|||
dataIndex: 'operation', |
|||
align: "center", |
|||
fixed: 'right', |
|||
width: 100, |
|||
render: (text, record, index) => { |
|||
return <> |
|||
<Button type="primary" onClick={() => {$dispose(record?.park_id)}}>审核</Button> |
|||
</> |
|||
}, |
|||
}, |
|||
]; |
|||
|
|||
// 批量处理 |
|||
const $batchProcessing = () => { |
|||
if (!tableSelectCheck?.length) return message.error("请选择需要处理的数据!"); |
|||
console.log(tableSelectCheck); |
|||
// 分页 |
|||
const $changePn = (pn, page_size) => { |
|||
let temFormData = {}; |
|||
if (formData.page_size == page_size) { |
|||
temFormData = { |
|||
...formData, |
|||
pn |
|||
}; |
|||
} else { |
|||
temFormData = { |
|||
...formData, |
|||
pn: 1, |
|||
page_size, |
|||
}; |
|||
}; |
|||
setFormData(temFormData); |
|||
$getTableList(temFormData); |
|||
}; |
|||
|
|||
// 分页 |
|||
const $changePn = (pn, page_size) => { |
|||
let temFormData = {}; |
|||
if (formData.page_size == page_size) { |
|||
temFormData = { |
|||
...formData, |
|||
pn |
|||
}; |
|||
// 处理审核获取订单记录审核数据 |
|||
const $dispose = (id) => { |
|||
if(!id) return message.error("获取业务订单ID失败,请重新选择!"); |
|||
ajax.getDealRecordActionListView({id}).then((res) => { |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setRecordReviewModal({open: true, data: res?.data || []}); |
|||
$processView(id); |
|||
setAuditSubmitId(id); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}).catch((error) => { |
|||
message.error(error.message); |
|||
}); |
|||
}; |
|||
|
|||
// 查看流程数据 |
|||
const $processView = (deal_record_id) => { |
|||
if(deal_record_id) { |
|||
ajax.getStartExceptionProcessView({deal_record_id}).then((res) => { |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setProcessViewData(res?.data || []); |
|||
} else { |
|||
temFormData = { |
|||
...formData, |
|||
pn: 1, |
|||
page_size, |
|||
}; |
|||
}; |
|||
setFormData(temFormData); |
|||
$getTableList(temFormData); |
|||
}; |
|||
message.error(res.message); |
|||
} |
|||
}).catch((error) => { |
|||
message.error(error.message); |
|||
}); |
|||
} |
|||
}; |
|||
|
|||
// 获取商户名称 |
|||
const $getAllOperator = () => { |
|||
ajax |
|||
.getAllOperator() |
|||
.then((res) => { |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setOperatorList(res.data || { value: 0, label: "全部" }); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}) |
|||
.catch((error) => { |
|||
message.error(error.message); |
|||
}); |
|||
// 提交 退回审核 |
|||
const $auditSubmit = (value) => { |
|||
if(!value?.examine_reason) return message.error("处理理由不能为空!"); |
|||
let _data = { |
|||
...value, |
|||
id: auditSubmitId |
|||
}; |
|||
ajax.getStartExceptionExamineAbnormal(_data).then((res) => { |
|||
if (res.status == 20000 || res.status == 0) { |
|||
message.success(res?.message || "提交审核成功"); |
|||
setRecordReviewModal({open: false, data: []}) |
|||
} else { |
|||
console.log(123); |
|||
message.error(res.message); |
|||
} |
|||
}).catch((error) => { |
|||
console.log(456); |
|||
message.error(error.message); |
|||
}); |
|||
}; |
|||
|
|||
// 获取区域树结构 |
|||
const $getAreaList = () => { |
|||
ajax |
|||
.getAreaTree() |
|||
.then((res) => { |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setAreaList( |
|||
res.data || [{ name: "全部", id: 0, level: 1, children: [] }] |
|||
); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}) |
|||
.catch((error) => { |
|||
message.error(error.message); |
|||
}); |
|||
// 获取表格数据 |
|||
const $getTableList = (value = {}) => { |
|||
let _data = { |
|||
...formData, |
|||
...value |
|||
}; |
|||
setLoading(true); |
|||
ajax.getDealRecordListTableData(_data).then((res) => { |
|||
setLoading(false); |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setResultData(res?.data || {}); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}).catch((error) => { |
|||
setLoading(false); |
|||
message.error(error.message); |
|||
}); |
|||
}; |
|||
|
|||
// 获取表格数据 |
|||
const $getTableList = (value = {}) => { |
|||
setTableSelectCheck([]); // 清空表格选中项 |
|||
let _data = { |
|||
...formData, |
|||
...value |
|||
}; |
|||
setLoading(true); |
|||
ajax.getDealRecordListTableData(_data).then((res) => { |
|||
setLoading(false); |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setResultData(res?.data || {}); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}).catch((error) => { |
|||
setLoading(false); |
|||
message.error(error.message); |
|||
}); |
|||
useEffect(() => { |
|||
let _data = {}; |
|||
if(sessionData && Object.values(sessionData).length > 0) { |
|||
_data = { |
|||
deal_record_id: sessionData?.deal_record_id || "", // 处理记录ID |
|||
business_type: sessionData?.business_type || [], // 业务订单类型 |
|||
park_id: sessionData?.park_id || [], // 业务订单ID |
|||
start_time: sessionData?.start_time || "", |
|||
end_time: sessionData?.end_time || "", |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0], |
|||
}; |
|||
setFormData({..._data}); |
|||
}; |
|||
$getTableList(_data); |
|||
}, []); |
|||
|
|||
useEffect(() => { |
|||
$getAllOperator(); |
|||
$getAreaList(); |
|||
$getTableList(); |
|||
}, []); |
|||
return ( |
|||
<div className="start-exception-deal"> |
|||
<div className="paid-search"> |
|||
<div className="title">查询条件</div> |
|||
<div className="form-Wrap"> |
|||
<div className="yisa-search"> |
|||
<label>处理记录ID</label> |
|||
<Input |
|||
className="form-con" |
|||
placeholder="请输入处理记录ID" |
|||
value={formData?.deal_record_id} |
|||
allowClear |
|||
onChange={(e) => |
|||
setFormData({ ...formData, deal_record_id: e.target.value || "" }) |
|||
} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>业务订单类型</label> |
|||
<Select |
|||
className="form-con" |
|||
placeholder="请选择" |
|||
options={[ |
|||
{ |
|||
label: "全部", |
|||
value: -1, |
|||
}, |
|||
|
|||
]} |
|||
value={formData.business_type} |
|||
onChange={(v) => setFormData({ ...formData, business_type: v })} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>业务订单ID</label> |
|||
<Input |
|||
className="form-con" |
|||
placeholder="请输入业务订单ID" |
|||
value={formData?.park_id} |
|||
allowClear |
|||
onChange={(e) => |
|||
setFormData({ ...formData, park_id: e.target.value || "" }) |
|||
} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>时间段</label> |
|||
<DatePicker |
|||
className="form-con" |
|||
showTime |
|||
format={"YYYY-MM-DD HH:mm:ss"} |
|||
value={moment(formData.start_time)} |
|||
disabledDate={(current) => current > moment(formData.end_time)} |
|||
onChange={(date, time) => { |
|||
setFormData({ ...formData, start_time: time || null }) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search" style={{ marginBottom: "0" }}> |
|||
<label>至</label> |
|||
<DatePicker |
|||
className="form-con" |
|||
showTime |
|||
format={"YYYY-MM-DD HH:mm:ss"} |
|||
value={moment(formData.end_time)} |
|||
disabledDate={(current) => current < moment(formData.start_time)} |
|||
onChange={(date, time) => { |
|||
setFormData({ ...formData, end_time: time || null }) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label></label> |
|||
<QuickMenu |
|||
dropdownData={[ |
|||
{ text: '昨日', value: 1 }, |
|||
{ text: '近30天', value: 30 }, |
|||
{ text: '近90天', value: 90 }, |
|||
{ text: '近180天', value: 180 } |
|||
]} |
|||
onChange={(v) => { |
|||
let plate = formData?.plateNumber || ""; |
|||
let value = v?.value || 0; |
|||
if (plate) { |
|||
console.log(utils?.validationPlate(plate)) |
|||
if (utils?.validationPlate(plate)) { |
|||
setFormData({ |
|||
...formData, |
|||
end_time: v?.endDateTime || null, |
|||
start_time: v?.startDateTime || null, |
|||
}) |
|||
} else { |
|||
message.error('请正确输入车牌号') |
|||
return |
|||
} |
|||
} else { |
|||
if (value > 30) return message.warning("请输入您查询的车牌号!"); |
|||
} |
|||
setFormData({ |
|||
...formData, |
|||
end_time: v?.endDateTime || null, |
|||
start_time: v?.startDateTime || null, |
|||
}) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="form-btn"> |
|||
<Button |
|||
className="reset" |
|||
onClick={() => setFormData({ ...defaultData, pn: formData?.pn || 1, page_size: formData?.page_size || dictionary?.pageSizeOptions1[0] })} |
|||
> |
|||
重置 |
|||
</Button> |
|||
<Button |
|||
className="submit" |
|||
type="primary" |
|||
onClick={() => { |
|||
let _data = { |
|||
...formData, |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0] |
|||
} |
|||
setFormData(_data) |
|||
$getTableList(_data) |
|||
}} |
|||
loading={loading} |
|||
> |
|||
查询 |
|||
</Button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div className="paid-result"> |
|||
<div className="result"> |
|||
<div className="row-head"> |
|||
<span className="number-wrapper"></span> |
|||
</div> |
|||
<div className="result-data"> |
|||
<Table |
|||
rowKey={(row) => row.park_id} |
|||
className="table" |
|||
dataSource={resultData?.list || []} |
|||
columns={tableColumns} |
|||
pagination={false} |
|||
loading={loading} |
|||
// rowSelection={{ |
|||
// selectedRowKeys: tableSelectCheck, |
|||
// onChange: (selectedRowKeys, selectedRows) => { |
|||
// console.log(selectedRowKeys, selectedRows); |
|||
// setTableSelectCheck(selectedRowKeys) |
|||
// }, |
|||
// getCheckboxProps: (record) => ({ |
|||
// disabled: record?.status_now == 2 |
|||
// }) |
|||
// }} |
|||
scroll={{ x: "1500", y: "calc(100vh - 310px)" }} |
|||
/> |
|||
<Pagination |
|||
className="pagination-common" |
|||
showSizeChanger={true} |
|||
showQuickJumper={true} |
|||
showTotal={() => `共 ${resultData.total || 0} 条`} |
|||
total={resultData.total} |
|||
current={formData.pn} |
|||
pageSize={formData.page_size} |
|||
pageSizeOptions={dictionary?.pageSizeOptions1} |
|||
onChange={$changePn} |
|||
/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<ParkingRecordModal |
|||
title={parkingRecordModal?.tableData?.road || null} |
|||
{...parkingRecordModal} |
|||
onCancel={() => { setParkingRecordModal({ open: false, tableData: {} }) }} |
|||
useEffect(() => { |
|||
setSessionData(formData); |
|||
}, [formData]); |
|||
|
|||
return ( |
|||
<div className="start-exception-deal"> |
|||
<div className="paid-search"> |
|||
<div className="title">查询条件</div> |
|||
<div className="form-Wrap"> |
|||
<div className="yisa-search"> |
|||
<label>处理记录ID</label> |
|||
<Input |
|||
className="form-con" |
|||
placeholder="请输入处理记录ID" |
|||
value={formData?.deal_record_id} |
|||
allowClear |
|||
onChange={(e) => |
|||
setFormData({ ...formData, deal_record_id: e.target.value || "" }) |
|||
} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>业务订单类型</label> |
|||
<Select |
|||
className="form-con" |
|||
placeholder="请选择" |
|||
options={[ |
|||
{label: "全部",value: 0}, |
|||
{label: "停车订单",value: 1} |
|||
]} |
|||
value={formData.business_type} |
|||
onChange={(v) => setFormData({ ...formData, business_type: v })} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>业务订单ID</label> |
|||
<Input |
|||
className="form-con" |
|||
placeholder="请输入业务订单ID" |
|||
value={formData?.park_id} |
|||
allowClear |
|||
onChange={(e) => |
|||
setFormData({ ...formData, park_id: e.target.value || "" }) |
|||
} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>时间段</label> |
|||
<DatePicker |
|||
className="form-con" |
|||
showTime |
|||
format={"YYYY-MM-DD HH:mm:ss"} |
|||
value={moment(formData.start_time)} |
|||
disabledDate={(current) => current > moment(formData.end_time)} |
|||
onChange={(date, time) => { |
|||
setFormData({ ...formData, start_time: time || null }) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search" style={{ marginBottom: "0" }}> |
|||
<label>至</label> |
|||
<DatePicker |
|||
className="form-con" |
|||
showTime |
|||
format={"YYYY-MM-DD HH:mm:ss"} |
|||
value={moment(formData.end_time)} |
|||
disabledDate={(current) => current < moment(formData.start_time)} |
|||
onChange={(date, time) => { |
|||
setFormData({ ...formData, end_time: time || null }) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label></label> |
|||
<QuickMenu |
|||
dropdownData={[ |
|||
{ text: '昨日', value: 1 }, |
|||
{ text: '近30天', value: 30 }, |
|||
{ text: '近90天', value: 90 }, |
|||
{ text: '近180天', value: 180 } |
|||
]} |
|||
onChange={(v) => { |
|||
setFormData({ |
|||
...formData, |
|||
end_time: v?.endDateTime || null, |
|||
start_time: v?.startDateTime || null, |
|||
}) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="form-btn"> |
|||
<Button |
|||
className="reset" |
|||
onClick={() => { |
|||
setFormData({ |
|||
...defaultData, |
|||
pn: formData?.pn || 1, |
|||
page_size: formData?.page_size || dictionary?.pageSizeOptions1[0] |
|||
})} |
|||
} |
|||
> |
|||
重置 |
|||
</Button> |
|||
<Button |
|||
className="submit" |
|||
type="primary" |
|||
onClick={() => { |
|||
let _data = { |
|||
...formData, |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0] |
|||
} |
|||
setFormData(_data) |
|||
$getTableList(_data) |
|||
}} |
|||
loading={loading} |
|||
> |
|||
查询 |
|||
</Button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div className="paid-result"> |
|||
<div className="result"> |
|||
<div className="row-head"> |
|||
<span className="number-wrapper"></span> |
|||
</div> |
|||
<div className="result-data"> |
|||
<Table |
|||
rowKey={(row) => row.park_id} |
|||
className="table" |
|||
dataSource={resultData?.list || []} |
|||
columns={tableColumns} |
|||
pagination={false} |
|||
loading={loading} |
|||
scroll={{ x: "1500", y: "calc(100vh - 310px)" }} |
|||
/> |
|||
<Pagination |
|||
className="pagination-common" |
|||
showSizeChanger={true} |
|||
showQuickJumper={true} |
|||
showTotal={() => `共 ${resultData.total || 0} 条`} |
|||
total={resultData.total} |
|||
current={formData.pn} |
|||
pageSize={formData.page_size} |
|||
pageSizeOptions={dictionary?.pageSizeOptions1} |
|||
onChange={$changePn} |
|||
/> |
|||
</div> |
|||
</div> |
|||
); |
|||
</div> |
|||
<RecordReviewModal |
|||
title="异常订单处理记录审核" |
|||
{...recordReviewModal} |
|||
type="审核" |
|||
disabledModal={true} |
|||
disabledAuditReason = {false} |
|||
processViewData={processViewData} |
|||
onCancel={() => {setRecordReviewModal({open: false, data: []})}} |
|||
onChangeSubmit={$auditSubmit} |
|||
/> |
|||
</div> |
|||
); |
|||
} |
|||
|
|||
export default DealRecordAudit; |
@ -1,456 +1,471 @@ |
|||
import React, { useState, useRef, useEffect } from "react"; |
|||
import { message, Pagination, Table, Select, Input, Cascader, DatePicker, Button, Popover } from "antd"; |
|||
import { message, Pagination, Table, Select, Input, DatePicker, Button, Popover } from "antd"; |
|||
import { dictionary, utils } from "@/config/common"; |
|||
import moment from "moment"; |
|||
import { useSessionStorageState, useUpdateEffect } from "ahooks"; |
|||
import { useSessionStorageState } from "ahooks"; |
|||
import ajax from "@/services"; |
|||
import { QuickMenu, ParkingRecordModal } from "@/components"; |
|||
import { QuickMenu } from "@/components"; |
|||
import RecordReviewModal from "@/components/ParkingRecordModal/RecordReviewModal"; |
|||
import "./index.scss"; |
|||
import errorImg from "@/assets/images/layout/error.png"; |
|||
import { useLocation } from "react-router-dom"; |
|||
|
|||
function DealRecordList() { |
|||
// 默认数据 |
|||
const defaultData = { |
|||
park_id: "", // 停车订单ID |
|||
operator: 0, // 商户名称 |
|||
region: [0], // 区域 |
|||
road: "", // 车场名称 |
|||
road_type: 0, // 车场类型 |
|||
plate: "", // 车牌号 |
|||
type: 1, // 出入场类型 1: 入场 2: 出场 |
|||
start_time: moment().subtract(7, "days").startOf("day").format("YYYY-MM-DD HH:mm:ss"), // 开始时间 |
|||
end_time: moment().format("YYYY-MM-DD HH:mm:ss"), // 结束时间 |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0] |
|||
}; |
|||
// 默认数据 |
|||
const defaultData = { |
|||
deal_record_id: "", // 处理记录ID |
|||
business_type: 0, // 业务订单类型 |
|||
park_id: "", // 业务订单ID |
|||
status: 0, // 状态 |
|||
start_time: moment().subtract(7, "days").startOf("day").format("YYYY-MM-DD HH:mm:ss"), // 开始时间 |
|||
end_time: moment().format("YYYY-MM-DD HH:mm:ss"), // 结束时间 |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0] |
|||
}; |
|||
|
|||
const [formData, setFormData] = useState(defaultData); // 表单数据 |
|||
const [operatorList, setOperatorList] = useState([{ value: 0, label: "全部" }]); //商户名称 |
|||
const [areaList, setAreaList] = useState([]); //区域的下拉数据 |
|||
const [loading, setLoading] = useState(false); // 检索按钮加载状态 |
|||
const [tableSelectCheck, setTableSelectCheck] = useState([]); // 列表选中的停车订单id |
|||
const [parkingRecordModal, setParkingRecordModal] = useState({ open: false, tableData: {} }); // 详情弹框 |
|||
const [formData, setFormData] = useState(defaultData); // 表单数据 |
|||
const [sessionData, setSessionData] = useSessionStorageState("dealRecordAudit", {value: {}}); // session缓存 |
|||
const [loading, setLoading] = useState(false); // 检索按钮加载状态 |
|||
const [recordReviewModal, setRecordReviewModal] = useState({open: false, data: []}); // 订单记录审核数据 |
|||
const [processViewData, setProcessViewData] = useState({}); // 查看流程数据 |
|||
|
|||
// 表格返回数据 |
|||
const [resultData, setResultData] = useState({ |
|||
total: 0, |
|||
list: [], |
|||
}); |
|||
// 表格返回数据 |
|||
const [resultData, setResultData] = useState({ |
|||
total: 0, |
|||
list: [], |
|||
}); |
|||
|
|||
//列表 |
|||
const tableColumns = [ |
|||
{ |
|||
title: "序号", |
|||
width: 60, |
|||
align: "center", |
|||
fixed: 'left', |
|||
render: (text, record, index) => index + 1, |
|||
}, |
|||
{ |
|||
title: "处理记录ID", |
|||
dataIndex: "deal_record_id", |
|||
key: "deal_record_id", |
|||
width: 200, |
|||
align: "center", |
|||
fixed: 'left', |
|||
render: (text) => ( |
|||
<> |
|||
<a onClick={() => { |
|||
navigator.clipboard.writeText(`${text}`).then(() => { message.success("已复制到剪切板") }); |
|||
}}>{text}</a> |
|||
</> |
|||
), |
|||
}, |
|||
{ |
|||
title: "发起时间", |
|||
dataIndex: "deal_time", |
|||
key: "deal_time", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "处理人", |
|||
dataIndex: "dealer", |
|||
key: "dealer", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "业务订单类型", |
|||
dataIndex: "business_type", |
|||
key: "business_type", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "业务订单ID", |
|||
dataIndex: "park_id", |
|||
key: "park_id", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "更改项", |
|||
dataIndex: "change_content", |
|||
key: "change_content", |
|||
align: "center", |
|||
width: 150, |
|||
render: (text, record, index) => { |
|||
let content = '' |
|||
switch (text) { |
|||
case 1: |
|||
content = "调整出场时间" |
|||
break; |
|||
case 2: |
|||
content = "变更车牌号" |
|||
break; |
|||
case 3: |
|||
content = "更改订单金额" |
|||
break; |
|||
case 4: |
|||
content = "免费该订单" |
|||
break; |
|||
case 5: |
|||
content = "作废该订单" |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
return <>{content}</> |
|||
}, |
|||
}, |
|||
{ |
|||
title: "更改项初始值", |
|||
dataIndex: "initial_value", |
|||
key: "initial_value", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "更改项更新值", |
|||
dataIndex: "update_value", |
|||
key: "update_value", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: '操作', |
|||
key: 'operation', |
|||
dataIndex: 'operation', |
|||
align: "center", |
|||
fixed: 'right', |
|||
width: 100, |
|||
render: (text, record, index) => { |
|||
return <> |
|||
<Popover |
|||
overlayClassName="start-exception-deal-operate" |
|||
content={ |
|||
<div className="operateBtn operate-btn" style={{ cursor: "pointer" }} trigger="hover"> |
|||
<div className="hover" onClick={() => { setParkingRecordModal({ open: true, tableData: record || {} }) }}>查看</div> |
|||
{record?.status_now == 2 ? |
|||
<div className="disabled">处理中</div> : |
|||
<div className="hover" onClick={() => { console.log("处理"); }}>处理</div> |
|||
} |
|||
</div> |
|||
} |
|||
> |
|||
<Button type="primary">操作</Button> |
|||
</Popover> |
|||
</> |
|||
}, |
|||
}, |
|||
]; |
|||
//列表 |
|||
const tableColumns = [ |
|||
{ |
|||
title: "序号", |
|||
width: 60, |
|||
align: "center", |
|||
fixed: 'left', |
|||
render: (text, record, index) => index + 1, |
|||
}, |
|||
{ |
|||
title: "处理记录ID", |
|||
dataIndex: "deal_record_id", |
|||
key: "deal_record_id", |
|||
width: 200, |
|||
align: "center", |
|||
fixed: 'left', |
|||
render: (text) => ( |
|||
<> |
|||
<a onClick={() => { |
|||
navigator.clipboard.writeText(`${text}`).then(() => { message.success("已复制到剪切板") }); |
|||
}}>{text}</a> |
|||
</> |
|||
), |
|||
}, |
|||
{ |
|||
title: "发起时间", |
|||
dataIndex: "deal_time", |
|||
key: "deal_time", |
|||
align: "center", |
|||
width: 200, |
|||
}, |
|||
{ |
|||
title: "处理人", |
|||
dataIndex: "dealer", |
|||
key: "dealer", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "业务订单类型", |
|||
dataIndex: "business_type", |
|||
key: "business_type", |
|||
align: "center", |
|||
width: 120, |
|||
}, |
|||
{ |
|||
title: "业务订单ID", |
|||
dataIndex: "park_id", |
|||
key: "park_id", |
|||
align: "center", |
|||
width: 200, |
|||
render: (text) => ( |
|||
<> |
|||
<a onClick={() => { |
|||
navigator.clipboard.writeText(`${text}`).then(() => { message.success("已复制到剪切板") }); |
|||
}}>{text}</a> |
|||
</> |
|||
), |
|||
}, |
|||
{ |
|||
title: "更改项", |
|||
dataIndex: "change_content", |
|||
key: "change_content", |
|||
align: "center", |
|||
width: 150, |
|||
// render: (text, record, index) => { |
|||
// let content = '' |
|||
// switch (text) { |
|||
// case 1: |
|||
// content = "调整出场时间" |
|||
// break; |
|||
// case 2: |
|||
// content = "变更车牌号" |
|||
// break; |
|||
// case 3: |
|||
// content = "更改订单金额" |
|||
// break; |
|||
// case 4: |
|||
// content = "免费该订单" |
|||
// break; |
|||
// case 5: |
|||
// content = "作废该订单" |
|||
// break; |
|||
// default: |
|||
// break; |
|||
// } |
|||
// return <>{content}</> |
|||
// }, |
|||
}, |
|||
{ |
|||
title: "更改项初始值", |
|||
dataIndex: "initial_value", |
|||
key: "initial_value", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "更改项更新值", |
|||
dataIndex: "update_value", |
|||
key: "update_value", |
|||
align: "center", |
|||
width: 150, |
|||
}, |
|||
{ |
|||
title: "状态", |
|||
dataIndex: "status", |
|||
key: "status", |
|||
align: "center", |
|||
width: 150, |
|||
render: (text, record, index) => { |
|||
let content = '--' |
|||
switch (text) { |
|||
case "1": |
|||
content = "待审核" |
|||
break; |
|||
case "2": |
|||
content = "已完成" |
|||
break; |
|||
case "3": |
|||
content = "已驳回" |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
return <>{content}</> |
|||
}, |
|||
}, |
|||
{ |
|||
title: '操作', |
|||
key: 'operation', |
|||
dataIndex: 'operation', |
|||
align: "center", |
|||
fixed: 'right', |
|||
width: 100, |
|||
render: (text, record, index) => { |
|||
return <> |
|||
<Button type="primary" onClick={() => {$dispose(record?.park_id)}}>查看</Button> |
|||
</> |
|||
}, |
|||
}, |
|||
]; |
|||
|
|||
// 批量处理 |
|||
const $batchProcessing = () => { |
|||
if (!tableSelectCheck?.length) return message.error("请选择需要处理的数据!"); |
|||
console.log(tableSelectCheck); |
|||
// 分页 |
|||
const $changePn = (pn, page_size) => { |
|||
let temFormData = {}; |
|||
if (formData.page_size == page_size) { |
|||
temFormData = { |
|||
...formData, |
|||
pn |
|||
}; |
|||
} else { |
|||
temFormData = { |
|||
...formData, |
|||
pn: 1, |
|||
page_size, |
|||
}; |
|||
}; |
|||
setFormData(temFormData); |
|||
$getTableList(temFormData); |
|||
}; |
|||
|
|||
// 处理查看获取订单记录审核数据 |
|||
const $dispose = (id) => { |
|||
if(!id) return message.error("获取业务订单ID失败,请重新选择!"); |
|||
ajax.getDealRecordListActionView({id}).then((res) => { |
|||
if (res.status == 20000 || res.status == 0) { |
|||
setRecordReviewModal({open: true, data: res?.data || []}); |
|||
$processView(id); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}).catch((error) => { |
|||
message.error(error.message); |
|||
}); |
|||
}; |
|||
|
|||
// 分页 |
|||
const $changePn = (pn, page_size) => { |
|||
let temFormData = {}; |
|||
if (formData.page_size == page_size) { |
|||
temFormData = { |
|||
...formData, |
|||
pn |
|||
}; |
|||
// 查看流程数据 |
|||
const $processView = (deal_record_id) => { |
|||
if(deal_record_id) { |
|||
ajax.getStartExceptionProcessView({deal_record_id}).then((res) => { |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setProcessViewData(res?.data || []); |
|||
} else { |
|||
temFormData = { |
|||
...formData, |
|||
pn: 1, |
|||
page_size, |
|||
}; |
|||
}; |
|||
setFormData(temFormData); |
|||
$getTableList(temFormData); |
|||
}; |
|||
message.error(res.message); |
|||
} |
|||
}).catch((error) => { |
|||
message.error(error.message); |
|||
}); |
|||
} |
|||
}; |
|||
|
|||
// 获取商户名称 |
|||
const $getAllOperator = () => { |
|||
ajax |
|||
.getAllOperator() |
|||
.then((res) => { |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setOperatorList(res.data || { value: 0, label: "全部" }); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}) |
|||
.catch((error) => { |
|||
message.error(error.message); |
|||
}); |
|||
// 获取表格数据 |
|||
const $getTableList = (value = {}) => { |
|||
let _data = { |
|||
...formData, |
|||
...value |
|||
}; |
|||
setLoading(true); |
|||
ajax.getDealRecordListTableData(_data).then((res) => { |
|||
setLoading(false); |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setResultData(res?.data || {}); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}).catch((error) => { |
|||
setLoading(false); |
|||
message.error(error.message); |
|||
}); |
|||
}; |
|||
|
|||
// 获取区域树结构 |
|||
const $getAreaList = () => { |
|||
ajax |
|||
.getAreaTree() |
|||
.then((res) => { |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setAreaList( |
|||
res.data || [{ name: "全部", id: 0, level: 1, children: [] }] |
|||
); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}) |
|||
.catch((error) => { |
|||
message.error(error.message); |
|||
}); |
|||
useEffect(() => { |
|||
let _data = {}; |
|||
if(sessionData && Object.values(sessionData).length > 0) { |
|||
_data = { |
|||
deal_record_id: sessionData?.deal_record_id || "", // 处理记录ID |
|||
business_type: sessionData?.business_type || [], // 业务订单类型 |
|||
park_id: sessionData?.park_id || [], // 业务订单ID |
|||
status: sessionData?.status || 0, // 状态 |
|||
start_time: sessionData?.start_time || "", |
|||
end_time: sessionData?.end_time || "", |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0], |
|||
}; |
|||
setFormData({..._data}); |
|||
}; |
|||
$getTableList(_data); |
|||
}, []); |
|||
|
|||
// 获取表格数据 |
|||
const $getTableList = (value = {}) => { |
|||
setTableSelectCheck([]); // 清空表格选中项 |
|||
let _data = { |
|||
...formData, |
|||
...value |
|||
}; |
|||
setLoading(true); |
|||
ajax.getDealRecordListTableData(_data).then((res) => { |
|||
setLoading(false); |
|||
if (res.status === 20000 || res.status == 0) { |
|||
setResultData(res?.data || {}); |
|||
} else { |
|||
message.error(res.message); |
|||
} |
|||
}).catch((error) => { |
|||
setLoading(false); |
|||
message.error(error.message); |
|||
}); |
|||
}; |
|||
useEffect(() => { |
|||
setSessionData(formData); |
|||
}, [formData]); |
|||
|
|||
useEffect(() => { |
|||
$getAllOperator(); |
|||
$getAreaList(); |
|||
$getTableList(); |
|||
}, []); |
|||
return ( |
|||
<div className="start-exception-deal"> |
|||
<div className="paid-search"> |
|||
<div className="title">查询条件</div> |
|||
<div className="form-Wrap"> |
|||
<div className="yisa-search"> |
|||
<label>处理记录ID</label> |
|||
<Input |
|||
className="form-con" |
|||
placeholder="请输入处理记录ID" |
|||
value={formData?.deal_record_id} |
|||
allowClear |
|||
onChange={(e) => |
|||
setFormData({ ...formData, deal_record_id: e.target.value || "" }) |
|||
} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>业务订单类型</label> |
|||
<Select |
|||
className="form-con" |
|||
placeholder="请选择" |
|||
options={[ |
|||
{ |
|||
label: "全部", |
|||
value: -1, |
|||
}, |
|||
return ( |
|||
<div className="start-exception-deal"> |
|||
<div className="paid-search"> |
|||
<div className="title">查询条件</div> |
|||
<div className="form-Wrap"> |
|||
<div className="yisa-search"> |
|||
<label>处理记录ID</label> |
|||
<Input |
|||
className="form-con" |
|||
placeholder="请输入处理记录ID" |
|||
value={formData?.deal_record_id} |
|||
allowClear |
|||
onChange={(e) => |
|||
setFormData({ ...formData, deal_record_id: e.target.value || "" }) |
|||
} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>业务订单类型</label> |
|||
<Select |
|||
className="form-con" |
|||
placeholder="请选择" |
|||
options={[ |
|||
{ |
|||
label: "全部", |
|||
value: -1, |
|||
}, |
|||
|
|||
]} |
|||
value={formData.business_type} |
|||
onChange={(v) => setFormData({ ...formData, business_type: v })} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>业务订单ID</label> |
|||
<Input |
|||
className="form-con" |
|||
placeholder="请输入业务订单ID" |
|||
value={formData?.park_id} |
|||
allowClear |
|||
onChange={(e) => |
|||
setFormData({ ...formData, park_id: e.target.value || "" }) |
|||
} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>时间段</label> |
|||
<DatePicker |
|||
className="form-con" |
|||
showTime |
|||
format={"YYYY-MM-DD HH:mm:ss"} |
|||
value={moment(formData.start_time)} |
|||
disabledDate={(current) => current > moment(formData.end_time)} |
|||
onChange={(date, time) => { |
|||
setFormData({ ...formData, start_time: time || null }) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search" style={{ marginBottom: "0" }}> |
|||
<label>至</label> |
|||
<DatePicker |
|||
className="form-con" |
|||
showTime |
|||
format={"YYYY-MM-DD HH:mm:ss"} |
|||
value={moment(formData.end_time)} |
|||
disabledDate={(current) => current < moment(formData.start_time)} |
|||
onChange={(date, time) => { |
|||
setFormData({ ...formData, end_time: time || null }) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label></label> |
|||
<QuickMenu |
|||
dropdownData={[ |
|||
{ text: '昨日', value: 1 }, |
|||
{ text: '近30天', value: 30 }, |
|||
{ text: '近90天', value: 90 }, |
|||
{ text: '近180天', value: 180 } |
|||
]} |
|||
onChange={(v) => { |
|||
let plate = formData?.plateNumber || ""; |
|||
let value = v?.value || 0; |
|||
if (plate) { |
|||
console.log(utils?.validationPlate(plate)) |
|||
if (utils?.validationPlate(plate)) { |
|||
setFormData({ |
|||
...formData, |
|||
end_time: v?.endDateTime || null, |
|||
start_time: v?.startDateTime || null, |
|||
}) |
|||
} else { |
|||
message.error('请正确输入车牌号') |
|||
return |
|||
} |
|||
} else { |
|||
if (value > 30) return message.warning("请输入您查询的车牌号!"); |
|||
} |
|||
setFormData({ |
|||
...formData, |
|||
end_time: v?.endDateTime || null, |
|||
start_time: v?.startDateTime || null, |
|||
}) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>状态</label> |
|||
<Select |
|||
className="form-con" |
|||
placeholder="请选择" |
|||
options={[ |
|||
{ |
|||
label: "全部", |
|||
value: -1, |
|||
}, |
|||
{ |
|||
label: "待审核", |
|||
value: 1, |
|||
}, |
|||
{ |
|||
label: "已完成", |
|||
value: 2, |
|||
}, |
|||
{ |
|||
label: "已驳回", |
|||
value: 3, |
|||
}, |
|||
]} |
|||
value={formData.status} |
|||
onChange={(v) => setFormData({ ...formData, status: v })} |
|||
/> |
|||
</div> |
|||
<div className="form-btn"> |
|||
<Button |
|||
className="reset" |
|||
onClick={() => setFormData({ ...defaultData, pn: formData?.pn || 1, page_size: formData?.page_size || dictionary?.pageSizeOptions1[0] })} |
|||
> |
|||
重置 |
|||
</Button> |
|||
<Button |
|||
className="submit" |
|||
type="primary" |
|||
onClick={() => { |
|||
let _data = { |
|||
...formData, |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0] |
|||
} |
|||
setFormData(_data) |
|||
$getTableList(_data) |
|||
}} |
|||
loading={loading} |
|||
> |
|||
查询 |
|||
</Button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div className="paid-result"> |
|||
<div className="result"> |
|||
<div className="row-head"> |
|||
<span className="number-wrapper">处理记录列表</span> |
|||
</div> |
|||
<div className="result-data"> |
|||
<Table |
|||
rowKey={(row) => row.park_id} |
|||
className="table" |
|||
dataSource={resultData?.list || []} |
|||
columns={tableColumns} |
|||
pagination={false} |
|||
loading={loading} |
|||
// rowSelection={{ |
|||
// selectedRowKeys: tableSelectCheck, |
|||
// onChange: (selectedRowKeys, selectedRows) => { |
|||
// console.log(selectedRowKeys, selectedRows); |
|||
// setTableSelectCheck(selectedRowKeys) |
|||
// }, |
|||
// getCheckboxProps: (record) => ({ |
|||
// disabled: record?.status_now == 2 |
|||
// }) |
|||
// }} |
|||
scroll={{ x: "1500", y: "calc(100vh - 310px)" }} |
|||
/> |
|||
<Pagination |
|||
className="pagination-common" |
|||
showSizeChanger={true} |
|||
showQuickJumper={true} |
|||
showTotal={() => `共 ${resultData.total || 0} 条`} |
|||
total={resultData.total} |
|||
current={formData.pn} |
|||
pageSize={formData.page_size} |
|||
pageSizeOptions={dictionary?.pageSizeOptions1} |
|||
onChange={$changePn} |
|||
/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<ParkingRecordModal |
|||
title={parkingRecordModal?.tableData?.road || null} |
|||
{...parkingRecordModal} |
|||
onCancel={() => { setParkingRecordModal({ open: false, tableData: {} }) }} |
|||
]} |
|||
value={formData.business_type} |
|||
onChange={(v) => setFormData({ ...formData, business_type: v })} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>业务订单ID</label> |
|||
<Input |
|||
className="form-con" |
|||
placeholder="请输入业务订单ID" |
|||
value={formData?.park_id} |
|||
allowClear |
|||
onChange={(e) => |
|||
setFormData({ ...formData, park_id: e.target.value || "" }) |
|||
} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>时间段</label> |
|||
<DatePicker |
|||
className="form-con" |
|||
showTime |
|||
format={"YYYY-MM-DD HH:mm:ss"} |
|||
value={moment(formData.start_time)} |
|||
disabledDate={(current) => current > moment(formData.end_time)} |
|||
onChange={(date, time) => { |
|||
setFormData({ ...formData, start_time: time || null }) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search" style={{ marginBottom: "0" }}> |
|||
<label>至</label> |
|||
<DatePicker |
|||
className="form-con" |
|||
showTime |
|||
format={"YYYY-MM-DD HH:mm:ss"} |
|||
value={moment(formData.end_time)} |
|||
disabledDate={(current) => current < moment(formData.start_time)} |
|||
onChange={(date, time) => { |
|||
setFormData({ ...formData, end_time: time || null }) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label></label> |
|||
<QuickMenu |
|||
dropdownData={[ |
|||
{ text: '昨日', value: 1 }, |
|||
{ text: '近30天', value: 30 }, |
|||
{ text: '近90天', value: 90 }, |
|||
{ text: '近180天', value: 180 } |
|||
]} |
|||
onChange={(v) => { |
|||
let plate = formData?.plateNumber || ""; |
|||
let value = v?.value || 0; |
|||
if (plate) { |
|||
console.log(utils?.validationPlate(plate)) |
|||
if (utils?.validationPlate(plate)) { |
|||
setFormData({ |
|||
...formData, |
|||
end_time: v?.endDateTime || null, |
|||
start_time: v?.startDateTime || null, |
|||
}) |
|||
} else { |
|||
message.error('请正确输入车牌号') |
|||
return |
|||
} |
|||
} else { |
|||
if (value > 30) return message.warning("请输入您查询的车牌号!"); |
|||
} |
|||
setFormData({ |
|||
...formData, |
|||
end_time: v?.endDateTime || null, |
|||
start_time: v?.startDateTime || null, |
|||
}) |
|||
}} |
|||
/> |
|||
</div> |
|||
<div className="yisa-search"> |
|||
<label>状态</label> |
|||
<Select |
|||
className="form-con" |
|||
placeholder="请选择" |
|||
options={[ |
|||
{ |
|||
label: "全部", |
|||
value: 0, |
|||
}, |
|||
{ |
|||
label: "待审核", |
|||
value: 1, |
|||
}, |
|||
{ |
|||
label: "已完成", |
|||
value: 2, |
|||
}, |
|||
{ |
|||
label: "已驳回", |
|||
value: 3, |
|||
}, |
|||
]} |
|||
value={formData.status} |
|||
onChange={(v) => setFormData({ ...formData, status: v })} |
|||
/> |
|||
</div> |
|||
<div className="form-btn"> |
|||
<Button |
|||
className="reset" |
|||
onClick={() => setFormData({ ...defaultData, pn: formData?.pn || 1, page_size: formData?.page_size || dictionary?.pageSizeOptions1[0] })} |
|||
> |
|||
重置 |
|||
</Button> |
|||
<Button |
|||
className="submit" |
|||
type="primary" |
|||
onClick={() => { |
|||
let _data = { |
|||
...formData, |
|||
pn: 1, |
|||
page_size: dictionary?.pageSizeOptions1[0] |
|||
} |
|||
setFormData(_data) |
|||
$getTableList(_data) |
|||
}} |
|||
loading={loading} |
|||
> |
|||
查询 |
|||
</Button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div className="paid-result"> |
|||
<div className="result"> |
|||
<div className="row-head"> |
|||
<span className="number-wrapper">处理记录列表</span> |
|||
</div> |
|||
<div className="result-data"> |
|||
<Table |
|||
rowKey={(row) => row.park_id} |
|||
className="table" |
|||
dataSource={resultData?.list || []} |
|||
columns={tableColumns} |
|||
pagination={false} |
|||
loading={loading} |
|||
scroll={{ x: "1500", y: "calc(100vh - 310px)" }} |
|||
/> |
|||
<Pagination |
|||
className="pagination-common" |
|||
showSizeChanger={true} |
|||
showQuickJumper={true} |
|||
showTotal={() => `共 ${resultData.total || 0} 条`} |
|||
total={resultData.total} |
|||
current={formData.pn} |
|||
pageSize={formData.page_size} |
|||
pageSizeOptions={dictionary?.pageSizeOptions1} |
|||
onChange={$changePn} |
|||
/> |
|||
</div> |
|||
</div> |
|||
); |
|||
</div> |
|||
<RecordReviewModal |
|||
carOutTimeColor="car-out-time-color" |
|||
title="异常订单处理记录审核" |
|||
{...recordReviewModal} |
|||
disabledModal={true} |
|||
disabledAuditReason = {true} |
|||
processViewData={processViewData} |
|||
onCancel={() => {setRecordReviewModal({open: false, data: []})}} |
|||
// onChangeSubmit={$auditSubmit} |
|||
/> |
|||
</div> |
|||
); |
|||
} |
|||
|
|||
export default DealRecordList; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue