Browse Source

Merge branch 'develop' of http://120.27.195.166:3000/chenglb/PMS_Frontend_v1.0.0 into develop

develop
wanghx 1 year ago
parent
commit
b156ebb36c
  1. 15
      public/index.html
  2. 6
      src/components/ParkingRecordModal/index.jsx
  3. 3
      src/components/SelectGaodeLngLat/index.jsx
  4. 34
      src/pages/DataAnalysisPrediction/EquipmentAly/EquipmentRunningStat/loadable.jsx
  5. 27
      src/pages/DataAnalysisPrediction/MemberStat/ParkingAly/loadable.jsx
  6. 49
      src/pages/DataAnalysisPrediction/MemberStat/PayAly/loadable.jsx
  7. 49
      src/pages/DataAnalysisPrediction/MemberStat/RegisterAly/loadable.jsx
  8. 2
      src/pages/DataAnalysisPrediction/ParkingBusinessAly/CarTypeAly/loadable.jsx
  9. 6
      src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkUsageAly/loadable.jsx
  10. 6
      src/pages/FinancialMgm/ExceptionDeal/DealRecordAudit/index.jsx
  11. 4
      src/pages/FinancialMgm/ExceptionDeal/DealRecordList/index.jsx
  12. 10
      src/pages/FinancialMgm/ExceptionDeal/StartExceptionDeal/index.jsx
  13. 14
      src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx
  14. 2
      src/pages/FinancialMgm/OrderInquiry/ReturnOrderInquiry/index.jsx
  15. 6
      src/pages/InRoadMgm/BusinessMgm/AbnormalParking/ExceptionParkReport/loadable.jsx
  16. 5
      src/pages/InRoadMgm/BusinessMgm/ChargeRules/EditModal.jsx
  17. 5
      src/pages/InRoadMgm/BusinessMgm/ChargeRules/FormModal.jsx
  18. 2
      src/pages/InRoadMgm/PersonMgm/PersonInfo/loadable.jsx
  19. 11
      src/pages/InRoadMgm/RecordInquiry/ParkRecordTotal/index.scss
  20. 13
      src/pages/InRoadMgm/RoadMgm/AddRoad/loadable.jsx
  21. 20
      src/pages/InRoadMgm/RoadMgm/RoadConf/loadable.jsx
  22. 2
      src/pages/InRoadMgm/Stuff/StuffMgm/loadable.jsx
  23. 4
      src/pages/MerchantMgm/FunctionMgm/loadable.jsx
  24. 9
      src/pages/NewEnergy/ChargeDeviceMgm/PhysicalPileManagement/loadable.jsx
  25. 6
      src/pages/NewEnergy/ChargeStationMgm/loadable.jsx
  26. 2
      src/pages/NewEnergy/ChargingMgm/BillingRule/loadable.jsx
  27. 2
      src/pages/NewEnergy/ChargingMgm/IllegalRuleConfigMgm/loadable.jsx
  28. 4
      src/pages/NewEnergy/ChargingMgm/OrderRuleMgm/loadable.jsx
  29. 6
      src/pages/NewEnergy/NewEnergyOverview/loadable.jsx
  30. 2
      src/pages/OperationCenter/CarMgm/CarInfo/index.scss
  31. 2
      src/pages/OperationCenter/CarMgm/CarInfo/loadable.jsx
  32. 51
      src/pages/OperationCenter/CustomerServieMgm/ErrorCorrection/loadable.jsx
  33. 44
      src/pages/OperationCenter/OperationSales/InformationMgm/loadable.jsx
  34. 8
      src/pages/OperationCenter/OperationSales/YardDiscount/loadable.jsx
  35. 16
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardMgm/loadable.jsx
  36. 10
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardOrder/loadable.jsx
  37. 2
      src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/Detail.jsx
  38. 11
      src/pages/SystemMgm/SystemLog/loadable.jsx

15
public/index.html

@ -10,13 +10,22 @@
<script src="./static/js/is/is.js"></script>
<script type="text/javascript">
window._AMapSecurityConfig = {
securityJsCode: "a82c766d50b78edbae71b6a8131fa01d",
securityJsCode: "1d43b5e31e80daa578a5276e228f1f2b",
};
</script>
<script src="//a.amap.com/Loca/static/mock/heatmapData.js"></script>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=a54fb01ed4e07686adc0eddf4e18afd7"></script>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=6e673b762fa5c589c0b5c7d651e77074"></script>
<script type="text/javascript"
src="https://webapi.amap.com/maps?v=1.4.15&key=a54fb01ed4e07686adc0eddf4e18afd7&plugin=AMap.MarkerClusterer"></script>
src="https://webapi.amap.com/maps?v=1.4.15&key=6e673b762fa5c589c0b5c7d651e77074&plugin=AMap.MarkerClusterer"></script>
<!-- <script type="text/javascript">
window._AMapSecurityConfig = {
securityJsCode: "a82c766d50b78edbae71b6a8131fa01d",
};
</script>
<script src="//a.amap.com/Loca/static/mock/heatmapData.js"></script>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=a54fb01ed4e07686adc0eddf4e18afd7"></script>
<script type="text/javascript"
src="https://webapi.amap.com/maps?v=1.4.15&key=a54fb01ed4e07686adc0eddf4e18afd7&plugin=AMap.MarkerClusterer"></script> -->
<script>
const baseApi = "<%= htmlWebpackPlugin.options.baseApi %>"
</script>

6
src/components/ParkingRecordModal/index.jsx

@ -157,7 +157,7 @@ const ParkingRecordModal = (props) => {
key == "5" ? ajax.getStartExceptionHistoryList : null; //
url({park_record_id: tableData?.park_id}).then((res) => {
setLoading(false);
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setPayRecord(res?.data?.list || []);
} else {
message.error(res.message);
@ -186,7 +186,7 @@ const ParkingRecordModal = (props) => {
//
const $historyOperation = (id, value) => {
ajax.getStartExceptionParkingRecordsInfo({...id}).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setRecordReviewModal({open: true, data: res?.data || []});
$processView(value);
} else {
@ -201,7 +201,7 @@ const ParkingRecordModal = (props) => {
const $processView = (deal_record_id) => {
if(deal_record_id) {
ajax.getStartExceptionProcessView({deal_record_id}).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setProcessViewData(res?.data || []);
} else {
message.error(res.message);

3
src/components/SelectGaodeLngLat/index.jsx

@ -18,6 +18,7 @@ function SelectGaodeLngLat(props) {
onChange = () => { },
isClickMarker = false //
} = props;
console.log(lngLatVisible);
const [lnglat, setLnglat] = useState([]);
const [marker, setMarker] = useState([]);
const [address, setAddress] = useState("");
@ -95,7 +96,7 @@ function SelectGaodeLngLat(props) {
</Button>
<Modal
className="map-modal"
visible={lngLatVisible}
open={lngLatVisible}
width={1000}
footer={false}
onCancel={close}

34
src/pages/DataAnalysisPrediction/EquipmentAly/EquipmentRunningStat/loadable.jsx

@ -712,21 +712,13 @@ function ExceptionParkReport() {
<p>
共查询到<span> {Data?.total || 0}</span>条数据
</p>
{/* <span
className={"sear_ser"}
onClick={() => {
Data?.total && setOpen(true);
tipForm.setFieldsValue({
filename: "设备运行统计-" + moment().format("YYYY-MM-DD"),
});
// setFormDatas({ ...FormData });
}}
>
导出
</span> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
{Data?.total ? (
<ExportBtnNew
children={
<Button className="export-btn" size="medium" type="primary">
导出
</Button>
}
modalType="noImg"
totalRecords={Data?.total || 0}
exportUrl="/api/ana/equipmentRuning/export"
@ -734,11 +726,15 @@ function ExceptionParkReport() {
formData: {
...FormDatas,
area_id: Show,
export_name: "设备运行统计-" + moment().format("YYYY-MM-DD")
}
export_name:
"设备运行统计-" + moment().format("YYYY-MM-DD"),
},
}}
imgno={false}
/>
/>
) : (
""
)}
</div>
<ResultFlow
hasLoad={true}
@ -748,7 +744,7 @@ function ExceptionParkReport() {
>
<div className="scrplltab">
<div className="table_raps">
<Table
<Table
className="yisa_tabled"
columns={column(selectArr)}
rowKey={(record) => record.id}

27
src/pages/DataAnalysisPrediction/MemberStat/ParkingAly/loadable.jsx

@ -603,17 +603,13 @@ function ParkingAly() {
<p>
共查询到<span> {Data?.total || 0}</span>条数据
</p>
{/* <span
className={"sear_ser"}
onClick={() => {
Data?.total && ReportPaySummaryReport();
// setFormDatas({ ...FormData });
}}
>
导出
</span> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
{Data?.total ? (
<ExportBtnNew
children={
<Button className="export-btn" size="medium" type="primary">
导出
</Button>
}
modalType="noImg"
totalRecords={500}
exportUrl="/api/ana/member/parking_export"
@ -622,11 +618,14 @@ function ParkingAly() {
pn: 1,
page_size: 15,
...FormData,
...DateFormt(FormDatas.date_type)
}
...DateFormt(FormDatas.date_type),
},
}}
imgno={false}
/>
/>
) : (
""
)}
</div>
<ResultFlow
hasLoad={true}

49
src/pages/DataAnalysisPrediction/MemberStat/PayAly/loadable.jsx

@ -22,7 +22,7 @@ import ajax from "@/services";
import { ResultFlow, ExportBtnNew } from "@/components";
import "./index.scss";
function PayAly() {
const exportRef = useRef(null)
const exportRef = useRef(null);
const formdata = {
operator_id: "0", //
data_source: "", // 1= 2=
@ -255,16 +255,16 @@ function PayAly() {
...FormDatas,
...DateFormt(FormDatas.date_type),
start: start,
end: end
end: end,
}).then(
(res) => {
if (parseInt(res?.status) === 20000) {
// Daownload(res?.data?.export_url);
message.success(res.message)
exportRef.current.handleCancel()
message.success(res.message);
exportRef.current.handleCancel();
} else {
message.error(res?.message);
exportRef.current.handleError()
exportRef.current.handleError();
}
},
(err) => {
@ -986,27 +986,24 @@ function PayAly() {
<p>
共查询到<span> {Data?.total || 0}</span>条数据
</p>
{/* <span
className={"sear_ser"}
onClick={() => {
Data?.total && ReportPaySummaryReport();
// setFormDatas({ ...FormData });
}}
>
导出
</span> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={Data?.total || 0}
imgno={false}
postdata={{
formData: FormDatas
}}
isTableModule={true}
onOk={ReportPaySummaryReport}
/>
{Data?.total ? (
<ExportBtnNew
children={
<Button className="export-btn" size="medium" type="primary">
导出
</Button>
}
modalType="noImg"
ref={exportRef}
totalRecords={Data?.total || 0}
imgno={false}
postdata={{
formData: FormDatas,
}}
isTableModule={true}
onOk={ReportPaySummaryReport}
/>
):""}
</div>
<ResultFlow
hasLoad={true}

49
src/pages/DataAnalysisPrediction/MemberStat/RegisterAly/loadable.jsx

@ -22,7 +22,7 @@ import ajax from "@/services";
import { ResultFlow, ExportBtnNew } from "@/components";
import "./index.scss";
function RegisterAly() {
const exportRef = useRef(null)
const exportRef = useRef(null);
const formdata = {
date_type: "1",
start_date: moment().startOf("day").format("YYYY-MM-DD"),
@ -246,15 +246,15 @@ function RegisterAly() {
...FormDatas,
...DateFormt(FormDatas.date_type),
start: start,
end: end
end: end,
}).then(
(res) => {
if (parseInt(res?.status) === 20000) {
// Daownload(res?.data?.export_url);
message.success(res.message)
exportRef.current.handleCancel()
message.success(res.message);
exportRef.current.handleCancel();
} else {
exportRef.current.handleError()
exportRef.current.handleError();
message.error(res?.message);
}
},
@ -809,27 +809,24 @@ function RegisterAly() {
<p>
共查询到<span> {Data?.total || 0}</span>条数据
</p>
{/* <span
className={"sear_ser"}
onClick={() => {
Data?.total && ReportPaySummaryReport();
// setFormDatas({ ...FormData });
}}
>
导出
</span> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={Data?.total || 0}
imgno={false}
postdata={{
formData: FormDatas
}}
isTableModule={true}
onOk={ReportPaySummaryReport}
/>
{Data?.total ? (
<ExportBtnNew
children={
<Button className="export-btn" size="medium" type="primary">
导出
</Button>
}
modalType="noImg"
ref={exportRef}
totalRecords={Data?.total || 0}
imgno={false}
postdata={{
formData: FormDatas,
}}
isTableModule={true}
onOk={ReportPaySummaryReport}
/>
):""}
</div>
<ResultFlow
hasLoad={true}

2
src/pages/DataAnalysisPrediction/ParkingBusinessAly/CarTypeAly/loadable.jsx

@ -54,7 +54,7 @@ function CarTypeAly() {
total: 0,
list: [],
});
const [sort, setSort] = useState([]);
const [sort, setSort] = useState('desc');
const [show, setShow] = useState([]);
const [revenueData, setRevenueData] = useState({});
const [parkingData, setParkingData] = useState({});

6
src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkUsageAly/loadable.jsx

@ -53,7 +53,7 @@ function ParkUsageAly() {
const [tabLoading, setTabLoading] = useState(false);
//
const [resultData, setResultData] = useState({
total: 0,
total_records: 0,
list: [],
});
//
@ -239,7 +239,7 @@ function ParkUsageAly() {
} else {
getRevenueOption([]);
setResultData({
total: 0,
total_records: 0,
list: [],
})
}
@ -586,7 +586,7 @@ function ParkUsageAly() {
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
totalRecords={resultData.total}
totalRecords={resultData.total_records}
exportUrl="/api/ana/dataanalysis/get_parking_berth_rate_export"
//pageName="parkingOverview"
postdata={{

6
src/pages/FinancialMgm/ExceptionDeal/DealRecordAudit/index.jsx

@ -198,7 +198,7 @@ function DealRecordAudit() {
const $dispose = (id, value) => {
if(!id) return message.error("获取业务订单ID失败,请重新选择!");
ajax.getDealRecordActionListView({...id}).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setRecordReviewModal({open: true, data: res?.data || []});
$processView(value);
setAuditSubmitId(id);
@ -214,7 +214,7 @@ function DealRecordAudit() {
const $processView = (deal_record_id) => {
if(deal_record_id) {
ajax.getStartExceptionProcessView({deal_record_id}).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setProcessViewData(res?.data || []);
} else {
message.error(res.message);
@ -256,7 +256,7 @@ function DealRecordAudit() {
setLoading(true);
ajax.getDealRecordAuditTableData(_data).then((res) => {
setLoading(false);
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setResultData(res?.data || {});
} else {
message.error(res.message);

4
src/pages/FinancialMgm/ExceptionDeal/DealRecordList/index.jsx

@ -213,7 +213,7 @@ function DealRecordList() {
const $processView = (deal_record_id) => {
if(deal_record_id) {
ajax.getStartExceptionProcessView({deal_record_id}).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setProcessViewData(res?.data || []);
} else {
message.error(res.message);
@ -234,7 +234,7 @@ function DealRecordList() {
setResultData({list: [], total: 0});
ajax.getDealRecordListTableData(_data).then((res) => {
setLoading(false);
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setResultData(res?.data || {});
} else {
message.error(res.message);

10
src/pages/FinancialMgm/ExceptionDeal/StartExceptionDeal/index.jsx

@ -223,7 +223,7 @@ function StartExceptionDeal() {
ajax.ElectInvoice
.getSelectOperator()
.then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setOperatorList(res.data || { value: "0", label: "全部" });
} else {
message.error(res.message);
@ -239,7 +239,7 @@ function StartExceptionDeal() {
ajax
.getAreaTree()
.then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setAreaList(
res.data || [{ name: "全部", id: 0, level: 1, children: [] }]
);
@ -262,7 +262,7 @@ function StartExceptionDeal() {
setLoading(true);
ajax.getStartExceptionTableData(_data).then((res) => {
setLoading(false);
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setResultData(res?.data || {});
} else {
message.error(res.message);
@ -276,7 +276,7 @@ function StartExceptionDeal() {
const $dispose = (id) => {
if(!id?.length) return message.error("获取停车订单ID失败,请重新选择!");
ajax.getStartExceptionParkingRecordsInfo({id}).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setRecordReviewModal({open: true, data: res?.data || []});
setAuditSubmitId(id);
} else {
@ -302,7 +302,7 @@ function StartExceptionDeal() {
};
ajax.getStartExceptionSendAbnormal(_data).then((res) => {
setButtonLoad(false);
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
message.success(res?.message || "提交审核成功");
setRecordReviewModal({open: false, data: []})
$getTableList()

14
src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx

@ -216,15 +216,15 @@ function ParkingOrderInquiry(props) {
align: "center",
render: (text, data) => {
if (data.arrearsAmount_new) {
return <div>
<span style={{ "text-decoration": "line-through" }}>{data.arrearsAmount}</span>
<span style={{ "color": "#177ddc", "margin-left": "5px" }}>{data.arrearsAmount_new}</span>
</div>
return <div>
<span style={{ "text-decoration": "line-through" }}>{data.arrearsAmount}</span>
<span style={{ "color": "#177ddc", "margin-left": "5px" }}>{data.arrearsAmount_new}</span>
</div>
}
else {
return <div>{text}</div>
return <div>{text}</div>
}
}
}
},
{
title: '订单修改时间',
@ -664,6 +664,7 @@ function ParkingOrderInquiry(props) {
}
} else {
setResultData([])
setTotal(0)
message.error(res.message)
}
})
@ -687,6 +688,7 @@ function ParkingOrderInquiry(props) {
}
} else {
setArrearsData([])
setTotal(0)
message.error(res.message)
}
})

2
src/pages/FinancialMgm/OrderInquiry/ReturnOrderInquiry/index.jsx

@ -366,7 +366,7 @@ function ReturnOrderInquiry() {
}
//
function renderTable(columns, arr, dataSource, exportUrl) {
let initFormData = { flow_id: getUrlSearch("third_party_flow_id") || '', start_time: getUrlSearch("pay_time") ? moment(getUrlSearch("pay_time")) : moment(moment().format("YYYY-MM-DD HH:mm:ss")) }
let initFormData = { flow_id: getUrlSearch("third_party_flow_id") || '', start_time: getUrlSearch("pay_time") ? moment(getUrlSearch("pay_time")) : moment(moment().startOf("day").format("YYYY-MM-DD HH:mm:ss")) }
return (
<TableModule
columns={columns}

6
src/pages/InRoadMgm/BusinessMgm/AbnormalParking/ExceptionParkReport/loadable.jsx

@ -484,13 +484,13 @@ function ExceptionParkReport(props) {
</div>
<div className="operatorName">
<div className="top">
<div className="name">车牌号:{getDetailId.plateNumber}</div>
<div className="name">车牌号{getDetailId.plateNumber}</div>
<div className="type">异常类型{getDetailId.exceptDictName}</div>
<div className="time">上报时间:{getDetailId.reportTime}</div>
<div className="time">上报时间{getDetailId.reportTime}</div>
</div>
<div className="middle">
<div className="type">停车场{getDetailId.parkName}</div>
<div className="time">入场时间:{getDetailId.entryTime}</div>
<div className="time">入场时间{getDetailId.entryTime}</div>
</div>
<div className="bottom">
{

5
src/pages/InRoadMgm/BusinessMgm/ChargeRules/EditModal.jsx

@ -509,6 +509,7 @@ const FormModal = (props) => {
}
const data = options;
handleOptionsProcessing(i, z, data, type)//
form.setFieldsValue(currentFormValues)
console.log("表单数据", currentFormValues);
return true;
}
@ -662,7 +663,7 @@ const FormModal = (props) => {
</div>
<div className="place">
<Form.Item
name="disability_time"
name="new_energy_time"
label="续停免费分钟"
className="yisa-label timeSearch"
rules={[{ required: true, message: "请输入${label}" }]}
@ -711,7 +712,7 @@ const FormModal = (props) => {
</div>
<div className="place">
<Form.Item
name="new_energy_time"
name="disability_time"
label="续停免费分钟"
className="yisa-label timeSearch"
rules={[{ required: true, message: "请输入${label}" }]}

5
src/pages/InRoadMgm/BusinessMgm/ChargeRules/FormModal.jsx

@ -489,6 +489,7 @@ const FormModal = (props) => {
// 4.
const data = options;
handleOptionsProcessing(i, z, data, type)//
form.setFieldsValue(currentFormValues)
console.log("表单数据", currentFormValues);
return true;
}
@ -639,7 +640,7 @@ const FormModal = (props) => {
</div>
<div className="place">
<Form.Item
name="disability_time"
name="new_energy_time"
label="续停免费分钟"
className="yisa-label timeSearch"
rules={[{ required: true, message: "请输入${label}" }]}
@ -687,7 +688,7 @@ const FormModal = (props) => {
</div>
<div className="place">
<Form.Item
name="new_energy_time"
name="disability_time"
label="续停免费分钟"
className="yisa-label timeSearch"
rules={[{ required: true, message: "请输入${label}" }]}

2
src/pages/InRoadMgm/PersonMgm/PersonInfo/loadable.jsx

@ -299,7 +299,7 @@ function PersonInfo() {
}
const changeEditOperator = (e) => {
setCurrentPersonInfo({ ...currentPersonInfo, operator: e })
setCurrentPersonInfo({ ...currentPersonInfo, operator: e , depart_id: ''})
getDeparts(e)
getAssets(e)
setGetPersonId(e)

11
src/pages/InRoadMgm/RecordInquiry/ParkRecordTotal/index.scss

@ -48,6 +48,11 @@ $color-primary: var(--color-primary);
}
}
}
.ant-picker {
width: 100%;
background-color: var(--color-search-list-item-bg);
border-color: var(--color-border);
}
}
.ant-input::-webkit-input-placeholder {
@ -165,11 +170,7 @@ $color-primary: var(--color-primary);
}
}
.ant-picker {
width: 100%;
background-color: var(--color-search-list-item-bg);
border-color: var(--color-border);
}
// .yisa-table {
// width: 100%;

13
src/pages/InRoadMgm/RoadMgm/AddRoad/loadable.jsx

@ -19,7 +19,7 @@ import {
import { PlusOutlined } from "@ant-design/icons";
import { useLocation, useNavigate } from "react-router-dom";
import { ImgUpload, TreeSelectGroup, SelectGaodeLngLat } from "@/components";
import { ImgUpload, TreeSelectGroup, SelectGaodeLngLat2 } from "@/components";
import moment from "moment";
import "./index.scss";
import ajax from "@/services";
@ -50,7 +50,8 @@ function AddRoad(props) {
];
const {
getDetailList = {},
setDetailModel=()=>{}
setDetailModel=()=>{},
setcheckModel=()=>{},
} = props
const navigate = useNavigate();
const location = useLocation();
@ -76,7 +77,7 @@ function AddRoad(props) {
//
const [operatorId, setOperatorId] = useState(null);
//
const [isEdit, setIsEdit] = useState(id !== null);
const [isEdit, setIsEdit] = useState(id !== undefined);
//
const [tradingAreaList, setTradingAreaList] = useState({
left: [],
@ -154,6 +155,7 @@ function AddRoad(props) {
if (res.status === 20000) {
message.success(res.message);
setDetailModel(false)
setcheckModel(false)
} else {
message.error(res.message);
}
@ -550,7 +552,7 @@ function AddRoad(props) {
<Input value={lngLat} />
</Col>
<Col span={5}>
<SelectGaodeLngLat
<SelectGaodeLngLat2
open={() => setLngLatVisible(true)}
lngLatVisible={lngLatVisible}
getLntLat={(value) => {
@ -603,7 +605,7 @@ function AddRoad(props) {
{isEdit ? (
<>
<Col span={8}>
<Form.Item label="泊位总数" name="berth_num" rules={rules}>
<Form.Item label="泊位总数" name="berth_num" >
<Input disabled />
</Form.Item>
</Col>
@ -859,6 +861,7 @@ function AddRoad(props) {
<Button
onClick={() => {
setDetailModel(false)
setcheckModel(false)
}}
type="primary"
>

20
src/pages/InRoadMgm/RoadMgm/RoadConf/loadable.jsx

@ -24,6 +24,7 @@ import "./index.scss";
import ConfigRoad from "../ConfigRoad"
import AddRoad from "../AddRoad"
import RoadDetail from "../RoadDetail"
// import AddRoad from "../AddRoad"
import AuditModifyModal from "./AuditModifyModal";
// import errorImg from "@/assets/images/layout/error.png"
// import { useLocation } from "react-router-dom";
@ -184,6 +185,7 @@ function RoadConf() {
const [handleDetail, setHandleDetail] = useState(false)
const [detailModel, setDetailModel] = useState(false)
const [checkDetailModel, setCheckDetailModel] = useState(false)
const [checkModel, setcheckModel] = useState(false)
const [getRecordList, setGetRecordList] = useState({})
const handleModal = (record) => {
setGetRecordList(record)
@ -208,6 +210,9 @@ function RoadConf() {
const handleCheckDetails=()=>{
setCheckDetailModel(false)
}
const CheckDetails=()=>{
setcheckModel(false)
}
const [loading, setLoading] = useState(false);
const [resultData, setReusltData] = useSetState({
//
@ -311,7 +316,7 @@ function RoadConf() {
};
//
function addRoad(params) {
navigate("/inRoad/addRoad");
setcheckModel(true)
}
function cascaderChange(value, options) {
@ -715,6 +720,19 @@ function RoadConf() {
>
</RoadDetail>
</Modal>
<Modal
visible={checkModel}
onCancel={CheckDetails}
footer={false}
className="handleCloseDetailModel"
destroyOnClose={true}
>
<AddRoad
getCheckDetailList={getCheckDetailList}
setcheckModel={setcheckModel}
>
</AddRoad>
</Modal>
</div>
{/* <AuditModifyModal
open={auditModalData.visible}

2
src/pages/InRoadMgm/Stuff/StuffMgm/loadable.jsx

@ -313,7 +313,7 @@ function StuffMgm(props) {
//
const getResetData = () => {
setGetOption(['0'])
getAssetData()
setFormData({
...parameter,
})

4
src/pages/MerchantMgm/FunctionMgm/loadable.jsx

@ -192,7 +192,7 @@ function FunctionMgm() {
//
const updateBtn = (record) => {
ajax.getOrgRoleNodeList().then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setBindTreeData(res?.data || [])
} else {
message.error(res.message);
@ -226,7 +226,7 @@ function FunctionMgm() {
tenantId: formData?.tenantId
};
ajax.getFunctionMgmEdit(value).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
message.success(res?.message || "编辑成功")
getTable(formData)
setUpdateVisible(false)

9
src/pages/NewEnergy/ChargeDeviceMgm/PhysicalPileManagement/loadable.jsx

@ -111,18 +111,17 @@ function PhysicalPileManagement() {
message.destroy();
message.warning(`硬件编码不可为空`);
return
}
else if(!reg.test(rowData?.code)){
}else if(!reg.test(rowData?.code)){
message.destroy();
message.warning(`硬件编码不能包含汉字`);
return
}
else if(!rowData.model||rowData.model.match(/^\s+$/)){
}else if(!rowData.model||rowData.model.match(/^\s+$/)){
message.destroy();
message.warning(`设备型号不可为空`);
return
}
else if(!reg.test(rowData?.model)){
let regs = /^[0-9a-zA-Z]*$/g;
if(!regs.test(rowData?.model)){
message.destroy();
message.warning(`设备型号不能包含汉字`);
return

6
src/pages/NewEnergy/ChargeStationMgm/loadable.jsx

@ -241,7 +241,7 @@ function Appointment() {
setDetailVisible(true)
}
const handelOk = () => {
console.log(addFormData);
// console.log(addFormData);
if (!addFormData.name) {
message.warn("请输入充电站名称")
return
@ -250,11 +250,11 @@ function Appointment() {
message.warn("请输入充电站编码")
return
}
if (!addFormData.count) {
if (!addFormData.count && addFormData.count != 0) {
message.warn("请输入车位数量")
return
}
if (!pattern.test(addFormData.count)) {
if (!pattern.test(addFormData.count) || addFormData.count == 0) {
message.warn("请输入正整数的车位数量")
return
}

2
src/pages/NewEnergy/ChargingMgm/BillingRule/loadable.jsx

@ -189,7 +189,7 @@ function BillingRule() {
// ok
const handleConfirm = () => {
let chineseReg = /^(?:[\u4e00-\u9fa5·]{1,16})$/
let chineseReg = /^(?:[\u4e00-\u9fa5·]{1,20})$/
let reg = /^[0-9a-zA-Z]*$/g;
let data = {
...modalData,

2
src/pages/NewEnergy/ChargingMgm/IllegalRuleConfigMgm/loadable.jsx

@ -253,7 +253,7 @@ const handelAdd = () => {
// ok
const handleConfirm = () => {
let chineseReg = /^(?:[\u4e00-\u9fa5·]{1,16})$/
let chineseReg = /^(?:[\u4e00-\u9fa5·]{1,20})$/
let reg = /^[0-9a-zA-Z]*$/g;
let data = {
...modalData,

4
src/pages/NewEnergy/ChargingMgm/OrderRuleMgm/loadable.jsx

@ -238,7 +238,7 @@ const handelAdd = () => {
// ok
const handleConfirm = () => {
let chineseReg = /^(?:[\u4e00-\u9fa5·]{1,16})$/
let chineseReg = /^(?:[\u4e00-\u9fa5·]{1,20})$/
let reg = /^[0-9a-zA-Z]*$/g;
let data = {
...modalData,
@ -424,7 +424,7 @@ return (
}}
>
<div className="ruleTitle">
<span className="font">新增规则</span>
<span className="font">规则详情</span>
</div>
<div className="ltc-content">
<div className="ltc-item">

6
src/pages/NewEnergy/NewEnergyOverview/loadable.jsx

@ -40,8 +40,10 @@ function NewEnergyOverview() {
document.getElementsByClassName("cc-container")[0].style.paddingLeft="10px"
document.getElementsByClassName("cc-container")[0].style.paddingTop="10px"
return ()=>{
document.getElementsByClassName("cc-container")[0].style.paddingTop="0px"
document.getElementsByClassName("cc-container")[0].style.paddingLeft="0px"
if(document.getElementsByClassName("cc-container").length){
document.getElementsByClassName("cc-container")[0].style.paddingTop="0px"
document.getElementsByClassName("cc-container")[0].style.paddingLeft="0px"
}
}
},[])
useEffect(()=>{

2
src/pages/OperationCenter/CarMgm/CarInfo/index.scss

@ -145,7 +145,7 @@ $color-primary: var(--color-primary);
width: 600px;
height: 300px;
border: 1px solid;
background: #6565656b;
background: rgb(62 69 87);
img {
width: 100%;
height: 100%;

2
src/pages/OperationCenter/CarMgm/CarInfo/loadable.jsx

@ -809,7 +809,7 @@ function CarInfo() {
<div style={{ padding: '18px' }}>
<div className="base-ltc">
<div className="ltc-img">
<img src={baseData.car_img || require("../../../../../src/assets/images/error-img.png")} onError={handleImgError} width={600} />
<img src={baseData.car_img || require("../../../../../src/assets/images/error-img-new.png")} onError={handleImgError} width={600} />
</div>
<div className="ltc-box">
<div className="ltc-box-title"><div className="ltc-icon"></div>车辆归属信息</div>

51
src/pages/OperationCenter/CustomerServieMgm/ErrorCorrection/loadable.jsx

@ -17,7 +17,7 @@ function ErrorCorrection(props) {
process_url: ""
})
const parameter = {
areId:['0'], //
areId: ['0'], //
parkName: '', //
correctionType: 0,//
pn: 1,
@ -48,6 +48,7 @@ function ErrorCorrection(props) {
}
}
console.log(res);
setFormData({ ...formData, areId:value })
setAreaSelectedList(res);
}
const addChild = (child, res) => {
@ -121,11 +122,11 @@ function ErrorCorrection(props) {
setImgVisible(false)
}
//
const getData = (data = formData) => {
const getData = (data = formData,reset='') => {
setAjaxLoading(true)
let dataList = {
...data,
areId: areaSelectedList
areId:!reset ? areaSelectedList :[]
}
ajax.getCarErrorList(dataList).then(res => {
setAjaxLoading(false)
@ -157,7 +158,7 @@ function ErrorCorrection(props) {
if (lastFormData.page_size === length) {
setFormData(Object.assign({}, formData, { pn: pn, page_size: length }))
setLastFormData(Object.assign({}, lastFormData, { pn: pn, page_size: length }))
lastFormDataRef.current = Object.assign({}, lastFormData, { pn: pn , page_size: length})
lastFormDataRef.current = Object.assign({}, lastFormData, { pn: pn, page_size: length })
getData(Object.assign({}, formData, { pn: pn, page_size: length }))
}
}
@ -172,7 +173,7 @@ function ErrorCorrection(props) {
const getSearchData = (data = formData) => {
// getData(data)
setFormData({ ...formData, pn: 1 })
setLastFormData({...formData, pn: 1})
setLastFormData({ ...formData, pn: 1 })
getData(Object.assign({}, formData, { pn: 1 }))
}
//
@ -180,8 +181,8 @@ function ErrorCorrection(props) {
setFormData({
...parameter
})
setAreaId([])
getData({...parameter,pn: 1} )
setAreaSelectedList([])
getData({ ...parameter, pn: 1 },'reset')
}
const [getCanCaDer, setGetCanCaDer] = useState([])
@ -204,7 +205,7 @@ function ErrorCorrection(props) {
<div className="yisa-search">
<label>区域</label>
<Cascader
defaultValue={formData.areId}
value={formData.areId}
options={getCanCaDer}
allowClear={false}
onChange={onChangeList}
@ -239,13 +240,13 @@ function ErrorCorrection(props) {
</div>
<div className="timePicker ">
<div className="btnBox">
<Button className="yisa-btn" onClick={() => { getResetData() }}>
<Button className="yisa-btn" onClick={() => { getResetData() }}>
重置
</Button>
<Button type="primary" className="yisa-btn" onClick={() => { getSearchData() }}>
查询
<Button type="primary" className="yisa-btn" onClick={() => { getSearchData() }}>
查询
</Button>
</div>
</div>
</div>
@ -320,21 +321,21 @@ function ErrorCorrection(props) {
<div className="plate">
问题描述<span className="font">{getImg.description}</span>
</div>
<div className="plate" >
<div>图片</div>
<div className="plate-content">
<div className="plate" >
<div>图片</div>
<div className="plate-content">
{
getImgList?.map((res, index) => {
return (
<div className="img-item">
<Image src={res} />
{
getImgList?.map((res, index) => {
return (
<div className="img-item">
<Image src={res} />
</div>
)
})
}
</div>
</div>
)
})
}
</div>
</div>

44
src/pages/OperationCenter/OperationSales/InformationMgm/loadable.jsx

@ -1759,7 +1759,16 @@ function MyEditor(props) {
//
const toolbarConfig = {
excludeKeys: ["emotion", "uploadImage", "uploadVideo"],
// excludeKeys: [
// "emotion",
// // "uploadImage",
// {
// key: 'group-image', // group
// title: '',
// // iconSvg: IMAGE_SVG,
// menuKeys: ['insertImage', 'uploadImage'],
// },
// "uploadVideo"],
};
//
@ -1768,6 +1777,39 @@ function MyEditor(props) {
MENU_CONF: {},
};
editorConfig.MENU_CONF['uploadImage'] = {
//
customUpload(file, insertFn) {
const formData = new FormData();
formData.append('file', file);
let url = baseApi + "/api/com/common/file_upload"
fetch(url, {
method: 'POST',
body: formData,
headers: {
Authorization: getToken(),
},
})
.then((res) => { return res.json() })
.then((res) => {
if (res.status == 20000) {
message.success('上传成功');
insertFn(res.data, '', '')
} else {
message.error(res.message);
}
})
.catch(() => {
message.error('上传失败');
})
.finally(() => {
});
}
}
// editor
useEffect(() => {
return () => {

8
src/pages/OperationCenter/OperationSales/YardDiscount/loadable.jsx

@ -193,7 +193,7 @@ const YardDiscount = () => {
const $fetchActivityList = (value) => {
// console.log(value);
return ajax.fetchActivityData({ ...value }).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
if (res?.data?.length) return res.data;
} else {
message.error(res.message);
@ -226,7 +226,7 @@ const YardDiscount = () => {
const $deleteConfirm = (id, type) => {
let url = type == "下架" ? ajax.yardDiscountDown : ajax.yardDiscountDelete;
url({ id }).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
message.success(res.message || `${type}成功`);
$getTableList();
} else {
@ -248,7 +248,7 @@ const YardDiscount = () => {
setLoading(true);
ajax.yardDiscountTableData(_data).then((res) => {
setLoading(false);
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setResultData(res?.data || { total: 0, list: [] });
} else {
message.error(res.message);
@ -274,7 +274,7 @@ const YardDiscount = () => {
if(!data?.end_time) return message.error("请选择结束时间!");
let _data = {...data, ...road};
ajax.handleYardDiscount(_data, type).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
message.success(res.message || `${type}成功`);
setModalData(defaultModal);
setModalVisible({open: false, title: ""});

16
src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardMgm/loadable.jsx

@ -246,6 +246,8 @@ function ParkingCardMgm(props) {
sale_end:"",
card_num:'',
text:"",
discount_amount:'',
original_price:''
}
//
@ -470,7 +472,12 @@ function ParkingCardMgm(props) {
})
}
const changeInput = (v) => {
setCheckData({ ...checkData, days: v})
if(v){
setCheckData({ ...checkData, days: v})
}else{
message.warning("有效天数必须为正整数")
setCheckData({ ...checkData, days: ''})
}
}
const isNumber = (value) => {
let reg = /^(\d+).*$/;
@ -635,9 +642,7 @@ function ParkingCardMgm(props) {
message.error('请选择销售渠道')
} else if (checkData.original_price == '') {
message.error('请输入原价')
} else if (checkData.discount_amount == '') {
message.error('请输入优惠金额')
}
}
else {
url(data).then((res) => {
if (res.status === 20000) {
@ -669,7 +674,6 @@ function ParkingCardMgm(props) {
}
})
useEffect(() => {
console.log(location)
if (sessionTabList && Object.values(sessionTabList).length > 0) {
setFormData({
...formData,
@ -1068,7 +1072,6 @@ function ParkingCardMgm(props) {
/>
</div>
<div className="yisa-search ">
<em style={{marginRight:'5px',marginLeft:'-13px',color:'red'}}>*</em>
<label>优惠金额</label>
<InputNumber
min={0}
@ -1080,7 +1083,6 @@ function ParkingCardMgm(props) {
/>
</div>
<div className="yisa-search ">
<em style={{marginRight:'5px',marginLeft:'-13px',color:'red'}}>*</em>
<label>销售价格</label>
<InputNumber
value={checkData.original_price && checkData.discount_amount ?

10
src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardOrder/loadable.jsx

@ -380,7 +380,9 @@ function ParkingCardOrder() {
effective_days:data.effective_days,
days:data.days,
scope:data.scope,
card_id:data.value
card_id:data.value,
effective_start:data.effective_start,
effective_end:data.effective_end
})
}
@ -997,7 +999,11 @@ function ParkingCardOrder() {
<div className="yisa-search">
<em style={{marginRight:'5px',marginLeft:'-13px',color:'red'}}>*</em>
<label>自购买后&ensp;<span style={{color:'#409eff',fontSize:16}}>{addOrderData.days}</span>&ensp;开始生效</label>
{addOrderData.days != 0 ?
<label>自购买起&ensp;<span style={{color:'#409eff',fontSize:16}}>{addOrderData.days}</span>&ensp;开始生效</label>
:
<label>生效日期&ensp;<span style={{color:'#409eff',fontSize:16}}>{addOrderData.effective_start}</span>&ensp;&ensp;<span style={{color:'#409eff',fontSize:16}}>{addOrderData.effective_end}</span></label>
}
</div>
<div className="yisa-search">
<em style={{marginRight:'5px',marginLeft:'-13px',color:'red'}}>*</em>

2
src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/Detail.jsx

@ -109,7 +109,7 @@ function EffectiveDetail(props) {
</Descriptions.Item>
<Descriptions.Item span={2}>
<Checkbox.Group
defaultValue={[record.unitDelay ? 1 : -1, record.unitUp ? 2 : -1]}
defaultValue={[...record.unit_fee_type_group]}
disabled
options={[
{

11
src/pages/SystemMgm/SystemLog/loadable.jsx

@ -5,7 +5,7 @@ import moment from "moment";
import ajax from '@/services'
import { TableModule, ExportBtnNew } from "@/components";
import { useSessionStorageState } from "ahooks";
import { dictionary } from "@/config/common.js";
import { dictionary, utils } from "@/config/common.js";
import "./index.scss";
const SystemLog = () => {
@ -184,7 +184,7 @@ const SystemLog = () => {
//
const $subsystemList = () => {
ajax.getSystemLogMenu().then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setSubsystemData(res?.data || []);
} else {
message.error(res.message);
@ -197,7 +197,7 @@ const SystemLog = () => {
//
const $operationTypeList = () => {
ajax.getSystemLogOperation().then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
setOperationTypeData(res?.data || []);
} else {
message.error(res.message);
@ -212,7 +212,8 @@ const SystemLog = () => {
setLoading(true);
ajax.getSystemLogList(value).then((res) => {
setLoading(false);
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
utils.tableScrollTop();
setResultData(res?.data || { total_records: 0, list: [] });
} else {
message.error(res.message);
@ -228,7 +229,7 @@ const SystemLog = () => {
if(!modalExport.export_name) return message.error("请输入文件名!");
let _data = {...formData, export_name: modalExport.export_name}
ajax.getExportSystemLog(_data).then((res) => {
if (res.status === 20000 || res.status == 0) {
if (res.status === 20000) {
let _url = res?.data?.url || "";
if(!_url) return message.error("返回导出地址为空!");
var link = document.createElement("a");

Loading…
Cancel
Save