Browse Source

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

tags/PMS_Frontend_v1.0.6-develop
wanghx 1 year ago
parent
commit
9e4445ad44
  1. 1
      package.json
  2. 48
      src/pages/DataAnalysisPrediction/EquipmentAly/EquipmentRunningStat/index.scss
  3. 189
      src/pages/DataAnalysisPrediction/EquipmentAly/EquipmentRunningStat/loadable.jsx
  4. 16
      src/pages/DataAnalysisPrediction/MemberStat/RegisterAly/loadable.jsx
  5. 45
      src/pages/DataAnalysisPrediction/ParkingOverview/index.scss
  6. 1016
      src/pages/DataAnalysisPrediction/ParkingOverview/loadable.jsx
  7. 2
      src/pages/FinancialMgm/FinancialReport/OperationReport/loadable.jsx
  8. 77
      src/pages/FinancialMgm/FinancialReport/ParkCardReport/loadable.jsx
  9. 2
      src/pages/FinancialMgm/FinancialReport/ParkingIncomeReport/loadable.jsx
  10. 104
      src/pages/FinancialMgm/FinancialReport/PreOrderReport/loadable.jsx
  11. 49
      src/services/ElectInvoice/index.js
  12. 26
      src/services/ParkingOverview/index.js

1
package.json

@ -68,6 +68,7 @@
"copy-to-clipboard": "^3.3.3", "copy-to-clipboard": "^3.3.3",
"crypto-js": "^4.1.1", "crypto-js": "^4.1.1",
"echarts-for-react": "^3.0.2", "echarts-for-react": "^3.0.2",
"echarts-gl": "^2.0.9",
"express": "^4.17.3", "express": "^4.17.3",
"js-cookie": "^3.0.1", "js-cookie": "^3.0.1",
"leaflet": "^1.4.0", "leaflet": "^1.4.0",

48
src/pages/DataAnalysisPrediction/EquipmentAly/EquipmentRunningStat/index.scss

@ -307,4 +307,52 @@ $color-primary : var(--color-primary);
font-size: 14px; font-size: 14px;
color: $color-text; color: $color-text;
}
.modal-invoic {
.tem {
display: flex;
align-items: center;
padding: 0 10px 16px 0;
.lab {
width: 90px;
margin-right: 10px;
i {
color: red;
}
}
.inputs {
width: 120px;
}
}
.submitBtn {
text-align: center;
margin-top: 20px;
.ant-btn {
width: 80px;
height: 35px;
border: none;
border-radius: 4px;
line-height: 27px;
color: #ffffff;
}
.submit {
background: #409eff;
}
.cancel {
background: var(--button-default-bg);
margin-left: 20px;
}
}
} }

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

@ -10,18 +10,13 @@ import {
AutoComplete, AutoComplete,
Tooltip, Tooltip,
Checkbox, Checkbox,
Modal,
Form, Form,
DatePicker, DatePicker,
} from "antd"; } from "antd";
import { dictionary, utils } from "@/config/common"; import { dictionary, utils } from "@/config/common";
import moment from "moment"; import moment from "moment";
import {
FunnelPlotOutlined,
CloseOutlined,
InfoCircleOutlined,
DownOutlined,
UpOutlined,
} from "@ant-design/icons";
import ajax from "@/services"; import ajax from "@/services";
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks'; // import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
import { ResultFlow } from "@/components"; import { ResultFlow } from "@/components";
@ -35,16 +30,15 @@ import Equip5 from "@/assets/images/equip/equip5.png";
const { RangePicker } = DatePicker; const { RangePicker } = DatePicker;
const { TextArea } = Input; const { TextArea } = Input;
function ExceptionParkReport() { function ExceptionParkReport() {
const [tipForm] = Form.useForm();
const formdata = { const formdata = {
operator_id: "0", // operator_id: "0", //
name: "", //
park_type: "", // 1= 2=
operator_status: [], //(1线234线)
area: [],
parkName: "", //
parkType: "", // 1= 2=
area_id: ["0"],
date_type: "1", date_type: "1",
is_excel: 0,
start_time: moment().startOf("day").format("YYYY-MM-DD"),
end_time: moment().endOf("day").format("YYYY-MM-DD"),
start_date: moment().startOf("day").format("YYYY-MM-DD"),
end_date: moment().endOf("day").format("YYYY-MM-DD"),
pn: 1, pn: 1,
page_size: dictionary?.pageSizeOptions1[0], page_size: dictionary?.pageSizeOptions1[0],
}; };
@ -52,30 +46,30 @@ function ExceptionParkReport() {
const tabt = [ const tabt = [
{ {
text: "设备总数(个)", text: "设备总数(个)",
value: 4642,
value: "deviceTotal",
icon: Equip1, icon: Equip1,
}, },
{ {
text: "离线次数(次)", text: "离线次数(次)",
value: 1,
value: "offlineTimes",
icon: Equip2, icon: Equip2,
tip: "离线时间大于20分钟,记为1次离线,连续离线不会记多次", tip: "离线时间大于20分钟,记为1次离线,连续离线不会记多次",
}, },
{ {
text: "离线总时长", text: "离线总时长",
value: "32天20时49分0秒",
value: "offlineDuration",
icon: Equip3, icon: Equip3,
}, },
{ {
text: "离线时长占比", text: "离线时长占比",
value: "99.58%",
value: "offlineDurationRate",
icon: Equip4, icon: Equip4,
tip: "离线设备总时长/离线设备工作时长*100%", tip: "离线设备总时长/离线设备工作时长*100%",
}, },
{ {
text: "离线时长占比", text: "离线时长占比",
subtext: "(全部设备)", subtext: "(全部设备)",
value: "0.71%",
value: "offlineDurationRateTotal",
icon: Equip5, icon: Equip5,
tip: "离线设备总时长/全区所有设备工作时长*100%", tip: "离线设备总时长/全区所有设备工作时长*100%",
}, },
@ -84,38 +78,38 @@ function ExceptionParkReport() {
const col = [ const col = [
{ {
title: "车场名称", title: "车场名称",
dataIndex: "road_name",
key: "road_name",
dataIndex: "parkName",
key: "parkName",
align: "center", align: "center",
}, },
{ {
title: "设备总数", title: "设备总数",
dataIndex: "date",
key: "date",
dataIndex: "deviceTotal",
key: "deviceTotal",
align: "center", align: "center",
}, },
{ {
title: "离线次数", title: "离线次数",
dataIndex: "date",
key: "date",
dataIndex: "offlineTimes",
key: "offlineTimes",
align: "center", align: "center",
}, },
{ {
title: "离线总时长", title: "离线总时长",
dataIndex: "date",
key: "date",
dataIndex: "offlineDuration",
key: "offlineDuration",
align: "center", align: "center",
}, },
{ {
title: "离线设备离线时长占比", title: "离线设备离线时长占比",
dataIndex: "date",
key: "date",
dataIndex: "offlineDurationRate",
key: "offlineDurationRate",
align: "center", align: "center",
}, },
{ {
title: "全部设备离线时长占比", title: "全部设备离线时长占比",
dataIndex: "date",
key: "date",
dataIndex: "offlineDurationRateTotal",
key: "offlineDurationRateTotal",
align: "center", align: "center",
}, },
]; ];
@ -128,6 +122,7 @@ function ExceptionParkReport() {
const [FormDatas, setFormDatas] = useState( const [FormDatas, setFormDatas] = useState(
form_data ? JSON.parse(form_data) : formdata form_data ? JSON.parse(form_data) : formdata
); );
const [Textcl, setTextcl] = useState("");
// //
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
// //
@ -135,7 +130,13 @@ function ExceptionParkReport() {
data: [], data: [],
total: 0, total: 0,
}); });
const [DataTop, setDataTop] = useState({
deviceTotal: 0,
offlineTimes: 0,
offlineDuration: 0,
offlineDurationRate: 0,
offlineDurationRateTotal: 0,
});
// //
const [Area, setArea] = useState([]); const [Area, setArea] = useState([]);
// //
@ -143,7 +144,7 @@ function ExceptionParkReport() {
// //
const [options, setOptions] = useState([]); const [options, setOptions] = useState([]);
const [Open, setOpen] = useState(true);
const [Open, setOpen] = useState(false);
// //
const [selectArr, setSelectArr] = useState([]); const [selectArr, setSelectArr] = useState([]);
// //
@ -217,8 +218,8 @@ function ExceptionParkReport() {
setFormData({ setFormData({
...FormData, ...FormData,
date_type: e, date_type: e,
start_time: start,
end_time: end,
start_date: start,
end_date: end,
}); });
}; };
@ -336,11 +337,21 @@ function ExceptionParkReport() {
link.click(); link.click();
document.body.removeChild(link); document.body.removeChild(link);
}; };
const SubmitPush = () => {
tipForm
.validateFields()
.then((res) => {
ReportPaySummaryReport(res.filename);
})
.catch((err) => {
console.log(err);
});
};
// //
const ReportPaySummaryReport = () => {
ajax.ElectInvoice.getOperationReport({
const ReportPaySummaryReport = (val) => {
ajax.ElectInvoice.getPstaticsexport({
...FormDatas, ...FormDatas,
is_excel: 1,
export_name: val,
}).then( }).then(
(res) => { (res) => {
if (parseInt(res?.status) === 20000) { if (parseInt(res?.status) === 20000) {
@ -354,17 +365,39 @@ function ExceptionParkReport() {
} }
); );
}; };
//sf
const getTopData = (data) => {
ajax.ElectInvoice.getPstatics({
...data,
area_id: data?.area_id?.length
? data?.area_id[data.area_id.length - 1]
: "",
}).then(
(res) => {
if (parseInt(res?.status) === 20000) {
setDataTop(res?.data);
} else {
message.error(res?.message);
}
},
(err) => {
console.log(err);
}
);
};
// //
const getData = (data) => { const getData = (data) => {
setLoading(false); setLoading(false);
ajax.ElectInvoice.getOperationReport({
ajax.ElectInvoice.getPstaticslist({
...data, ...data,
area: data?.area?.length ? data?.area[data.area.length - 1] : "",
area_id: data?.area_id?.length
? data?.area_id[data.area_id.length - 1]
: "",
}).then( }).then(
(res) => { (res) => {
if (parseInt(res?.status) === 20000) { if (parseInt(res?.status) === 20000) {
setData({ setData({
data: res?.data?.list || [],
data: res?.data || [],
total: res?.total || 0, total: res?.total || 0,
}); });
setLoading(true); setLoading(true);
@ -384,7 +417,8 @@ function ExceptionParkReport() {
"FormData_OperationReport", "FormData_OperationReport",
JSON.stringify(FormDatas) JSON.stringify(FormDatas)
); );
// getData(FormDatas);
getData(FormDatas);
getTopData(FormDatas);
// //
}, [FormDatas]); }, [FormDatas]);
useEffect(() => { useEffect(() => {
@ -434,23 +468,23 @@ function ExceptionParkReport() {
format={TimeChange().mat} format={TimeChange().mat}
picker={TimeChange().str} picker={TimeChange().str}
allowClear={false} allowClear={false}
value={FormData.start_time ? moment(FormData.start_time) : null}
value={FormData.start_date ? moment(FormData.start_date) : null}
onChange={(date, dateString) => { onChange={(date, dateString) => {
console.log(date, dateString); console.log(date, dateString);
if (TimeChange().str == "week") { if (TimeChange().str == "week") {
setFormData({ setFormData({
...FormData, ...FormData,
start_time: date
start_date: date
? moment(date).day(1).format("YYYY-MM-DD") ? moment(date).day(1).format("YYYY-MM-DD")
: null, : null,
}); });
} else { } else {
setFormData({ ...FormData, start_time: dateString });
setFormData({ ...FormData, start_date: dateString });
} }
}} }}
disabledDate={(current) => disabledDate={(current) =>
current > moment(FormData.end_time) ||
current < moment(FormData.end_time).subtract(120, "days")
current > moment(FormData.end_date) ||
current < moment(FormData.end_date).subtract(120, "days")
} }
/> />
</div> </div>
@ -464,22 +498,22 @@ function ExceptionParkReport() {
format={TimeChange().mat} format={TimeChange().mat}
picker={TimeChange().str} picker={TimeChange().str}
allowClear={false} allowClear={false}
value={FormData.end_time ? moment(FormData.end_time) : null}
value={FormData.end_date ? moment(FormData.end_date) : null}
onChange={(date, dateString) => { onChange={(date, dateString) => {
if (TimeChange().str == "week") { if (TimeChange().str == "week") {
setFormData({ setFormData({
...FormData, ...FormData,
end_time: date
end_date: date
? moment(date).day(7).format("YYYY-MM-DD") ? moment(date).day(7).format("YYYY-MM-DD")
: null, : null,
}); });
} else { } else {
setFormData({ ...FormData, end_time: dateString });
setFormData({ ...FormData, end_date: dateString });
} }
}} }}
disabledDate={(current) => disabledDate={(current) =>
current < moment(FormData.start_time) ||
current > moment(FormData.start_time).add(120, "days")
current < moment(FormData.start_date) ||
current > moment(FormData.start_date).add(120, "days")
} }
/> />
</div> </div>
@ -490,7 +524,7 @@ function ExceptionParkReport() {
<Cascader <Cascader
options={Area} options={Area}
expandTrigger="hover" expandTrigger="hover"
value={FormData.area}
value={FormData.area_id}
style={{ style={{
width: "100%", width: "100%",
}} }}
@ -503,7 +537,7 @@ function ExceptionParkReport() {
onChange={(e) => onChange={(e) =>
setFormData({ setFormData({
...FormData, ...FormData,
area: e,
area_id: e,
}) })
} }
/> />
@ -532,7 +566,7 @@ function ExceptionParkReport() {
<span className="lab">停车场</span> <span className="lab">停车场</span>
<div className="inputs"> <div className="inputs">
<AutoComplete <AutoComplete
value={FormData.name}
value={FormData.parkName}
style={{ style={{
width: "100%", width: "100%",
}} }}
@ -543,7 +577,7 @@ function ExceptionParkReport() {
console.log(e); console.log(e);
setFormData({ setFormData({
...FormData, ...FormData,
name: e,
parkName: e,
}); });
}} }}
/> />
@ -553,7 +587,7 @@ function ExceptionParkReport() {
<span className="lab">车场类型</span> <span className="lab">车场类型</span>
<div className="inputs"> <div className="inputs">
<Select <Select
value={FormData.park_type}
value={FormData.parkType}
style={{ style={{
width: "100%", width: "100%",
}} }}
@ -575,7 +609,7 @@ function ExceptionParkReport() {
onChange={(e) => onChange={(e) =>
setFormData({ setFormData({
...FormData, ...FormData,
park_type: e,
parkType: e,
}) })
} }
/> />
@ -636,7 +670,7 @@ function ExceptionParkReport() {
)} )}
</div> </div>
{ele?.subtext ? <div className="gnu">{ele.subtext}</div> : ""} {ele?.subtext ? <div className="gnu">{ele.subtext}</div> : ""}
<div className="gnum">{ele.value}</div>
<div className="gnum">{DataTop[ele.value]}</div>
</div> </div>
); );
})} })}
@ -648,7 +682,7 @@ function ExceptionParkReport() {
<span <span
className={"sear_ser"} className={"sear_ser"}
onClick={() => { onClick={() => {
Data?.total && ReportPaySummaryReport();
Data?.total && setOpen(true);
// setFormDatas({ ...FormData }); // setFormDatas({ ...FormData });
}} }}
> >
@ -700,6 +734,41 @@ function ExceptionParkReport() {
</ResultFlow> </ResultFlow>
</div> </div>
</div> </div>
<Modal
open={Open}
footer={null}
onCancel={() => {
setOpen(false);
tipForm.resetFields();
}}
// width={300}
className="modal-invoic"
title={"提示"}
>
<Form form={tipForm}>
<Form.Item
label="文件名"
name="filename"
rules={[{ required: true }]}
>
<Input placeholder={"请输入文件名"} />
</Form.Item>
</Form>
<div className="submitBtn">
<p className="ant-btn submit" onClick={() => SubmitPush()}>
提交
</p>
<p
className="ant-btn cancel"
onClick={() => {
tipForm.resetFields();
setOpen(false);
}}
>
取消
</p>
</div>
</Modal>
</div> </div>
); );
} }

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

@ -74,7 +74,8 @@ function RegisterAly() {
data: [], data: [],
total: 0, total: 0,
list: { list: {
binding_count: "",
binding_car_count: "",
binding_user_count: "",
user_count: "", user_count: "",
car_count: "", car_count: "",
unbinding_car_count: "", unbinding_car_count: "",
@ -260,7 +261,8 @@ function RegisterAly() {
const getRingOption = ( const getRingOption = (
data = { data = {
binding_count: "0",
binding_car_count: "0",
binding_user_count: "0",
user_count: "0", user_count: "0",
car_count: "0", car_count: "0",
unbinding_car_count: "0", unbinding_car_count: "0",
@ -272,7 +274,7 @@ function RegisterAly() {
[ [
{ {
name: "绑定车牌数", name: "绑定车牌数",
value: data.binding_count,
value: data.binding_car_count,
}, },
{ {
name: "未绑定车牌数", name: "未绑定车牌数",
@ -283,7 +285,7 @@ function RegisterAly() {
[ [
{ {
name: "绑定车牌会员数", name: "绑定车牌会员数",
value: data.binding_count,
value: data.binding_user_count,
}, },
{ {
name: "非绑定车牌会员数", name: "非绑定车牌会员数",
@ -577,7 +579,8 @@ function RegisterAly() {
data: res?.data || [], data: res?.data || [],
total: res?.data?.length || 0, total: res?.data?.length || 0,
list: { list: {
binding_count: res.binding_count,
binding_car_count: res.binding_car_count,
binding_user_count: res.binding_user_count,
user_count: res.user_count, user_count: res.user_count,
car_count: res.car_count, car_count: res.car_count,
unbinding_car_count: res.unbinding_car_count, unbinding_car_count: res.unbinding_car_count,
@ -586,7 +589,8 @@ function RegisterAly() {
}); });
getRevenueOption(res?.data); getRevenueOption(res?.data);
getRingOption({ getRingOption({
binding_count: res.binding_count,
binding_car_count: res.binding_car_count,
binding_user_count: res.binding_user_count,
user_count: res.user_count, user_count: res.user_count,
car_count: res.car_count, car_count: res.car_count,
unbinding_car_count: res.unbinding_car_count, unbinding_car_count: res.unbinding_car_count,

45
src/pages/DataAnalysisPrediction/ParkingOverview/index.scss

@ -206,7 +206,7 @@ $color-primary : var(--color-primary);
align-items: center; align-items: center;
width: max-content; width: max-content;
height: 40px; height: 40px;
background: rgba(30, 38, 53, 0.64);
p { p {
display: flex; display: flex;
@ -222,6 +222,10 @@ $color-primary : var(--color-primary);
color: #127bfc; color: #127bfc;
background: rgba(30, 38, 53, 0.64); background: rgba(30, 38, 53, 0.64);
} }
div {
background: rgba(30, 38, 53, 0.64);
}
} }
.left_home { .left_home {
@ -439,6 +443,45 @@ $color-primary : var(--color-primary);
background: url("../../../assets/images/equip/home/right_checked.png") no-repeat; background: url("../../../assets/images/equip/home/right_checked.png") no-repeat;
} }
} }
.tfff {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.topph {
display: flex;
align-items: center;
padding: 0 20px;
margin-top: 4px;
.nol {
display: flex;
flex-direction: column;
justify-content: center;
margin-right: 8px;
// font-size: 18px;
p {
border: #127bfc 1px solid;
margin-bottom: 0%;
padding: 2px;
}
}
.nor {
flex: 1;
display: flex;
flex-direction: column;
.trr {
display: flex;
justify-content: space-between;
}
}
}
} }
.pk_footer { .pk_footer {

1016
src/pages/DataAnalysisPrediction/ParkingOverview/loadable.jsx
File diff suppressed because it is too large
View File

2
src/pages/FinancialMgm/FinancialReport/OperationReport/loadable.jsx

@ -43,7 +43,7 @@ function OperationReport() {
name: "", // name: "", //
park_type: "", // 1= 2= park_type: "", // 1= 2=
operator_status: [], //(1线234线) operator_status: [], //(1线234线)
area: [],
area: ["0"],
date_type: "1", date_type: "1",
is_excel: 0, is_excel: 0,
start_time: moment() start_time: moment()

77
src/pages/FinancialMgm/FinancialReport/ParkCardReport/loadable.jsx

@ -25,27 +25,28 @@ const { RangePicker } = DatePicker;
function ParkCardReport() { function ParkCardReport() {
//- //-
const formdata = { const formdata = {
time_type: "1",
date_type: "1",
start_time: moment() start_time: moment()
.startOf("day") .startOf("day")
.subtract(1, "days") .subtract(1, "days")
.format("YYYY-MM-DD"), .format("YYYY-MM-DD"),
end_time: moment().endOf("day").subtract(1, "days").format("YYYY-MM-DD"), end_time: moment().endOf("day").subtract(1, "days").format("YYYY-MM-DD"),
pn: 1, pn: 1,
export: 0,
page_size: dictionary?.pageSizeOptions1[0], page_size: dictionary?.pageSizeOptions1[0],
}; };
const col = [ const col = [
{ {
title: "支付日期", title: "支付日期",
dataIndex: "time_type",
key: "time_type",
dataIndex: "date",
key: "date",
align: "center", align: "center",
}, },
{ {
title: "余额", title: "余额",
dataIndex: "ye_money",
key: "ye_money",
dataIndex: "balance",
key: "balance",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _ + "元"; return _ && _ + "元";
@ -53,8 +54,8 @@ function ParkCardReport() {
}, },
{ {
title: "现金", title: "现金",
dataIndex: "xj_money",
key: "xj_money",
dataIndex: "cash",
key: "cash",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _ + "元"; return _ && _ + "元";
@ -62,8 +63,8 @@ function ParkCardReport() {
}, },
{ {
title: "微信", title: "微信",
dataIndex: "wx_money",
key: "wx_money",
dataIndex: "wechat",
key: "wechat",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _ + "元"; return _ && _ + "元";
@ -71,8 +72,8 @@ function ParkCardReport() {
}, },
{ {
title: "支付宝", title: "支付宝",
dataIndex: "zfb_money",
key: "zfb_money",
dataIndex: "alipay",
key: "alipay",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _ + "元"; return _ && _ + "元";
@ -80,8 +81,8 @@ function ParkCardReport() {
}, },
{ {
title: "系统录入", title: "系统录入",
dataIndex: "xtlr_money",
key: "xtlr_money",
dataIndex: "system_input",
key: "system_input",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _ + "元"; return _ && _ + "元";
@ -89,8 +90,8 @@ function ParkCardReport() {
}, },
{ {
title: "招商银行", title: "招商银行",
dataIndex: "zsyh_money",
key: "zsyh_money",
dataIndex: "merchants_bank",
key: "merchants_bank",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _ + "元"; return _ && _ + "元";
@ -98,8 +99,8 @@ function ParkCardReport() {
}, },
{ {
title: "数字人民币", title: "数字人民币",
dataIndex: "szrmb_money",
key: "szrmb_money",
dataIndex: "digital_yuan",
key: "digital_yuan",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _ + "元"; return _ && _ + "元";
@ -107,8 +108,8 @@ function ParkCardReport() {
}, },
{ {
title: "车场自收", title: "车场自收",
dataIndex: "cczs_money",
key: "cczs_money",
dataIndex: "parking",
key: "parking",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _ + "元"; return _ && _ + "元";
@ -116,8 +117,8 @@ function ParkCardReport() {
}, },
{ {
title: "ETC", title: "ETC",
dataIndex: "etc_money",
key: "etc_money",
dataIndex: "ETC",
key: "ETC",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _ + "元"; return _ && _ + "元";
@ -169,7 +170,7 @@ function ParkCardReport() {
// //
const TimeChange = () => { const TimeChange = () => {
let e = FormData.time_type;
let e = FormData.date_type;
let str = "date"; let str = "date";
let mat = "YYYY-MM-DD"; let mat = "YYYY-MM-DD";
if (e == 4) { if (e == 4) {
@ -203,7 +204,7 @@ function ParkCardReport() {
} }
setFormData({ setFormData({
...FormData, ...FormData,
time_type: e,
date_type: e,
start_time: start, start_time: start,
end_time: end, end_time: end,
}); });
@ -264,15 +265,33 @@ function ParkCardReport() {
</div> </div>
); );
}; };
//
const ReportPaySummaryReport = () => {
ajax.ElectInvoice.getParkCarOrder({
...FormDatas,
export: 1,
}).then(
(res) => {
if (parseInt(res?.status) === 20000) {
Daownload(res?.data?.url);
} else {
message.error(res?.message);
}
},
(err) => {
console.log(err);
}
);
};
// //
const getData = (data) => { const getData = (data) => {
setLoading(false); setLoading(false);
ajax.ElectInvoice.getPdalist({ ...data }).then(
ajax.ElectInvoice.getParkCarOrder({ ...data }).then(
(res) => { (res) => {
if (parseInt(res?.status) === 20000) { if (parseInt(res?.status) === 20000) {
setData({ setData({
data: res?.data?.list || [],
total: res?.data?.total || 0,
data: res?.data || [],
total: res?.total || 0,
}); });
setLoading(true); setLoading(true);
} else { } else {
@ -320,7 +339,7 @@ function ParkCardReport() {
时间 时间
<div className="daf"> <div className="daf">
<Select <Select
value={FormData.time_type}
value={FormData.date_type}
// style={{ // style={{
// width: "100%", // width: "100%",
// }} // }}
@ -389,7 +408,7 @@ function ParkCardReport() {
? moment(date).day(7).format("YYYY-MM-DD") ? moment(date).day(7).format("YYYY-MM-DD")
: null, : null,
}); });
} else {
} else {
setFormData({ ...FormData, end_time: dateString }); setFormData({ ...FormData, end_time: dateString });
} }
}} }}
@ -436,7 +455,7 @@ function ParkCardReport() {
<span <span
className={"sear_ser"} className={"sear_ser"}
onClick={() => { onClick={() => {
// Data?.total && setFormDatas({ ...FormData });
Data?.total && ReportPaySummaryReport();
}} }}
> >
导出 导出

2
src/pages/FinancialMgm/FinancialReport/ParkingIncomeReport/loadable.jsx

@ -41,7 +41,7 @@ function ParkingIncomeReport() {
park_type: "", // park_type: "", //
operator_status: [], // operator_status: [], //
name: "", // name: "", //
area: [],
area: ["0"],
date_type: "1", date_type: "1",
start_time: moment() start_time: moment()
.startOf("day") .startOf("day")

104
src/pages/FinancialMgm/FinancialReport/PreOrderReport/loadable.jsx

@ -27,10 +27,10 @@ function PreOrderReport() {
const [form] = Form.useForm(); const [form] = Form.useForm();
//- //-
const formdata = { const formdata = {
type: "1", //
export: "0", //
operator_id: "0", //id operator_id: "0", //id
headname: "", //
time_type: "1",
parking_name: "", //
date_type: "1",
start_time: moment() start_time: moment()
.startOf("day") .startOf("day")
.subtract(1, "days") .subtract(1, "days")
@ -39,28 +39,20 @@ function PreOrderReport() {
pn: 1, pn: 1,
page_size: dictionary?.pageSizeOptions1[0], page_size: dictionary?.pageSizeOptions1[0],
}; };
const formlayout = {
labelCol: {
span: 6,
},
wrapperCol: {
span: 18,
},
};
const zonji = [ const zonji = [
{ {
text: "合计预付金额", text: "合计预付金额",
value: "0.00",
value: "payment_amount_total",
color: "#a461d8", color: "#a461d8",
}, },
{ {
text: "预付抵扣总额", text: "预付抵扣总额",
value: "0.00",
value: "payment_deduction_amount_total",
color: "#82c43c", color: "#82c43c",
}, },
{ {
text: "退款总计", text: "退款总计",
value: "0.00",
value: "payment_refund_amount_total",
color: "#527bff", color: "#527bff",
}, },
]; ];
@ -78,7 +70,10 @@ function PreOrderReport() {
// //
const [Data, setData] = useState({ const [Data, setData] = useState({
data: [], data: [],
total: 1,
total: 0,
payment_amount_total: 0,
payment_deduction_amount_total: 0,
payment_refund_amount_total: 0,
}); });
// //
const [options, setOptions] = useState([]); const [options, setOptions] = useState([]);
@ -94,8 +89,8 @@ function PreOrderReport() {
return [ return [
{ {
title: "日期", title: "日期",
dataIndex: "pay_time",
key: "pay_time",
dataIndex: "date",
key: "date",
width: 120, width: 120,
fixed: "right", fixed: "right",
align: "center", align: "center",
@ -103,36 +98,36 @@ function PreOrderReport() {
{ {
title: "商户名称", title: "商户名称",
width: 120, width: 120,
dataIndex: "operator_id",
key: "operator_id",
dataIndex: "store_name",
key: "store_name",
align: "center", align: "center",
}, },
{ {
title: "停车场名称", title: "停车场名称",
width: 120, width: 120,
dataIndex: "tax",
key: "tax",
dataIndex: "parking_name",
key: "parking_name",
align: "center", align: "center",
}, },
{ {
title: "泊位数", title: "泊位数",
width: 120, width: 120,
dataIndex: "tax",
key: "tax",
dataIndex: "parking_num",
key: "parking_num",
align: "center", align: "center",
}, },
{ {
title: "预付笔数", title: "预付笔数",
width: 120, width: 120,
dataIndex: "tax",
key: "tax",
dataIndex: "payment_num",
key: "payment_num",
align: "center", align: "center",
}, },
{ {
title: "预付金额(元)", title: "预付金额(元)",
width: 120, width: 120,
dataIndex: "tax",
key: "tax",
dataIndex: "payment_amount",
key: "payment_amount",
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return _ && _; return _ && _;
@ -141,28 +136,28 @@ function PreOrderReport() {
{ {
title: "预付抵扣笔数", title: "预付抵扣笔数",
width: 120, width: 120,
dataIndex: "tax",
key: "tax",
dataIndex: "payment_deduction_num",
key: "payment_deduction_num",
align: "center", align: "center",
}, },
{ {
title: "预付抵扣金额(元)", title: "预付抵扣金额(元)",
width: 150, width: 150,
dataIndex: "tax",
key: "tax",
dataIndex: "payment_deduction_amount",
key: "payment_deduction_amount",
align: "center", align: "center",
}, },
{ {
title: "预付退款笔数", title: "预付退款笔数",
width: 120, width: 120,
dataIndex: "tax",
key: "tax",
dataIndex: "payment_refund_num",
key: "payment_refund_num",
align: "center", align: "center",
}, },
{ {
title: "预付退款金额(元)", title: "预付退款金额(元)",
width: 150, width: 150,
dataIndex: "tax",
dataIndex: "payment_refund_amount ",
key: "tax", key: "tax",
align: "center", align: "center",
}, },
@ -216,7 +211,7 @@ function PreOrderReport() {
}; };
// //
const TimeChange = () => { const TimeChange = () => {
let e = FormData.time_type;
let e = FormData.date_type;
let str = "date"; let str = "date";
let mat = "YYYY-MM-DD"; let mat = "YYYY-MM-DD";
if (e == 4) { if (e == 4) {
@ -250,7 +245,7 @@ function PreOrderReport() {
} }
setFormData({ setFormData({
...FormData, ...FormData,
time_type: e,
date_type: e,
start_time: start, start_time: start,
end_time: end, end_time: end,
}); });
@ -316,15 +311,36 @@ function PreOrderReport() {
} }
); );
}; };
//
const ReportPaySummaryReport = () => {
ajax.ElectInvoice.getPayment({
...FormDatas,
export: 1,
}).then(
(res) => {
if (parseInt(res?.status) === 20000) {
Daownload(res?.data?.url);
} else {
message.error(res?.message);
}
},
(err) => {
console.log(err);
}
);
};
// //
const getData = (data) => { const getData = (data) => {
setLoading(false); setLoading(false);
ajax.ElectInvoice.getInvoice({ ...data }).then(
ajax.ElectInvoice.getPayment({ ...data }).then(
(res) => { (res) => {
if (parseInt(res?.status) === 20000) { if (parseInt(res?.status) === 20000) {
setData({ setData({
data: res?.data || [], data: res?.data || [],
total: res.total || 0, total: res.total || 0,
payment_amount_total: res?.payment_amount_total,
payment_deduction_amount_total: res?.payment_deduction_amount_total,
payment_refund_amount_total: res?.payment_refund_amount_total,
}); });
setLoading(true); setLoading(true);
} else { } else {
@ -373,7 +389,7 @@ function PreOrderReport() {
<span className="lab">停车场名称</span> <span className="lab">停车场名称</span>
<div className="inputs"> <div className="inputs">
<AutoComplete <AutoComplete
value={FormData.headname}
value={FormData.parking_name}
style={{ style={{
width: "100%", width: "100%",
}} }}
@ -384,7 +400,7 @@ function PreOrderReport() {
console.log(e); console.log(e);
setFormData({ setFormData({
...FormData, ...FormData,
headname: e,
parking_name: e,
}); });
}} }}
/> />
@ -395,7 +411,7 @@ function PreOrderReport() {
时间 时间
<div className="daf"> <div className="daf">
<Select <Select
value={FormData.time_type}
value={FormData.date_type}
// style={{ // style={{
// width: "100%", // width: "100%",
// }} // }}
@ -438,7 +454,7 @@ function PreOrderReport() {
? moment(date).day(1).format("YYYY-MM-DD") ? moment(date).day(1).format("YYYY-MM-DD")
: null, : null,
}); });
}else {
} else {
setFormData({ ...FormData, start_time: dateString }); setFormData({ ...FormData, start_time: dateString });
} }
}} }}
@ -464,7 +480,7 @@ function PreOrderReport() {
? moment(date).day(7).format("YYYY-MM-DD") ? moment(date).day(7).format("YYYY-MM-DD")
: null, : null,
}); });
} else {
} else {
setFormData({ ...FormData, end_time: dateString }); setFormData({ ...FormData, end_time: dateString });
} }
}} }}
@ -530,7 +546,7 @@ function PreOrderReport() {
<span <span
className={"sear_ser"} className={"sear_ser"}
onClick={() => { onClick={() => {
// Data?.total && setFormDatas({ ...FormData });
Data?.total && ReportPaySummaryReport();
}} }}
> >
导出 导出
@ -542,7 +558,7 @@ function PreOrderReport() {
<div className="pl" key={ele.text}> <div className="pl" key={ele.text}>
<i style={{ background: ele.color }}></i> <i style={{ background: ele.color }}></i>
<p> <p>
{ele.text}: <span>{ele.value}</span>
{ele.text}: <span>{Data[ele.value]}</span>
</p> </p>
</div> </div>
); );

49
src/services/ElectInvoice/index.js

@ -74,6 +74,25 @@ const getOperationReport = (params) => {
data: params, data: params,
}); });
}; };
//************************停车卡报表
// 获取列表数据
const getParkCarOrder = (params) => {
return ajax({
url: "/api/fin/finance_table/parking_card_order_statistics",
type: "post",
data: params,
});
};
//************************ 预付报表
// 获取列表数据
const getPayment = (params) => {
return ajax({
url: "/api/fin/finance_table/advance_payment_statistics",
type: "post",
data: params,
});
};
//************************总收入报表 //************************总收入报表
// 获取列表数据 // 获取列表数据
const getPaySummaryReport = (params) => { const getPaySummaryReport = (params) => {
@ -209,6 +228,31 @@ const exportPayFx = (params) => {
data: params, data: params,
}); });
}; };
//************************设备运行统计
//获取列表sf数据
const getPstatics = (params) => {
return ajax({
url: "/api/ana/equipmentRuning/statics",
type: "post",
data: params,
});
};
//获取设备运行统计列表
const getPstaticslist = (params) => {
return ajax({
url: "/api/ana/equipmentRuning/list",
type: "post",
data: params,
});
};
//获取列表设备运行统计导出接口
const getPstaticsexport = (params) => {
return ajax({
url: "/api/ana/equipmentRuning/export",
type: "post",
data: params,
});
};
//-------------------------------------------------设备分析--------------- //-------------------------------------------------设备分析---------------
export default { export default {
getInvoiceMess, getInvoiceMess,
@ -223,6 +267,8 @@ export default {
ReportPaySummaryReport, ReportPaySummaryReport,
getOperationReport, getOperationReport,
getSelectOperator, getSelectOperator,
getParkCarOrder,
getPayment,
getGeneralBusiness, getGeneralBusiness,
getSetBilly, getSetBilly,
@ -238,4 +284,7 @@ export default {
exportParking, exportParking,
exportRegister, exportRegister,
exportPayFx, exportPayFx,
getPstatics,
getPstaticslist,
getPstaticsexport,
}; };

26
src/services/ParkingOverview/index.js

@ -98,7 +98,7 @@ export default {
}); });
}, },
//获取区域或商户
//获取底部区域或商户
GetAreaShop: (params) => { GetAreaShop: (params) => {
return ajax({ return ajax({
url: "/api/ana/overview/getOperatorArea", url: "/api/ana/overview/getOperatorArea",
@ -106,4 +106,28 @@ export default {
data: params, data: params,
}); });
}, },
//概览-收费top5
GetrateRank: (params) => {
return ajax({
url: "/api/ana/overview/rateRank",
type: "get",
data: params,
});
},
//概览-营收分析类型占比
GetincomeType: (params) => {
return ajax({
url: "/api/ana/overview/incomeType",
type: "get",
data: params,
});
},
//车场总数 单独提供给区大屏
GetParkinfo: (params) => {
return ajax({
url: "/api/ana/overview/parkingInfo",
type: "get",
data: params,
});
},
}; };
Loading…
Cancel
Save