10 changed files with 2332 additions and 613 deletions
-
129src/pages/FinancialMgm/FinancialReport/PdaStat/index.scss
-
402src/pages/FinancialMgm/FinancialReport/PdaStat/loadable.jsx
-
166src/pages/FinancialMgm/Invoice/CreateInvoice/index.scss
-
722src/pages/FinancialMgm/Invoice/CreateInvoice/loadable.jsx
-
47src/pages/FinancialMgm/Invoice/CreateInvoiceRecord/index.scss
-
1396src/pages/FinancialMgm/Invoice/CreateInvoiceRecord/loadable.jsx
-
2src/pages/FinancialMgm/SettleBill/PayRepeat/loadable.jsx
-
34src/router/router.config.js
-
43src/services/ElectInvoice/index.js
-
4src/services/index.js
@ -1,15 +1,399 @@ |
|||
import React, { useState, useRef, useEffect } from "react"; |
|||
// import { message, Pagination, Table, Space, Modal, } from "antd"; |
|||
// import { dictionary, utils } from "@/config/common"; |
|||
// import moment from 'moment' |
|||
import { |
|||
message, |
|||
Pagination, |
|||
Table, |
|||
Select, |
|||
Input, |
|||
Popover, |
|||
Modal, |
|||
Button, |
|||
Row, |
|||
Col, |
|||
Form, |
|||
DatePicker, |
|||
} from "antd"; |
|||
import { dictionary, utils } from "@/config/common"; |
|||
import moment from "moment"; |
|||
import { DeleteOutlined } from "@ant-design/icons"; |
|||
import ajax from "@/services"; |
|||
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks'; |
|||
// import ajax from "@/services" |
|||
// import { FormInput, FormSelect, OptionPanel, ResultPanel, FormSliderPicker, AreaCascader, ImgResize, ImgZoom, } from "@/components" |
|||
// import "./index.scss"; |
|||
import { ResultFlow } from "@/components"; |
|||
import "./index.scss"; |
|||
// import errorImg from "@/assets/images/layout/error.png" |
|||
// import { useLocation } from "react-router-dom"; |
|||
const { RangePicker } = DatePicker; |
|||
const { TextArea } = Input; |
|||
function PdaStat() { |
|||
return <div>PdaStat</div> |
|||
} |
|||
const [form] = Form.useForm(); |
|||
//页面检索-重复 |
|||
const formdata = { |
|||
sell_name: "", //商户 |
|||
head_name: "", //发票抬头 |
|||
order_type: "", //发票类型 |
|||
start_time: moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"), |
|||
end_time: moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"), |
|||
pn: "1", |
|||
page_size: "15", |
|||
}; |
|||
|
|||
//抬头类型 |
|||
const Headtype = [ |
|||
{ |
|||
label: "个人", |
|||
value: "1", |
|||
}, |
|||
{ |
|||
label: "企业", |
|||
value: "2", |
|||
}, |
|||
]; |
|||
//业务类型 |
|||
const Bussinss = [ |
|||
{ |
|||
label: "停车支付订单", |
|||
value: "1", |
|||
}, |
|||
{ |
|||
label: "停车卡订单", |
|||
value: "2", |
|||
}, |
|||
]; |
|||
//检索 |
|||
const [FormData, setFormData] = useState(formdata); |
|||
//检索2 |
|||
const [FormDatas, setFormDatas] = useState(formdata); |
|||
//页码状态 |
|||
const [loading, setLoading] = useState(false); |
|||
//页面数据 |
|||
const [Data, setData] = useState({ |
|||
data: [], |
|||
total: 0, |
|||
}); |
|||
|
|||
const column = () => { |
|||
return [ |
|||
{ |
|||
title: "序号", |
|||
width: 60, |
|||
fixed: "left", |
|||
render: (text, record, index) => index + 1, |
|||
}, |
|||
{ |
|||
title: "电子邮箱", |
|||
dataIndex: "email", |
|||
width: 120, |
|||
key: "email", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "发票代码", |
|||
dataIndex: "ordercode", |
|||
width: 120, |
|||
key: "ordercode", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "发票号码", |
|||
width: 120, |
|||
dataIndex: "orderNo", |
|||
key: "orderNo", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "商户名称", |
|||
width: 120, |
|||
dataIndex: "sell_name", |
|||
key: "sell_name", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "发票内容", |
|||
width: 120, |
|||
dataIndex: "invoice_content", |
|||
key: "invoice_content", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "发票抬头", |
|||
width: 120, |
|||
dataIndex: "header_name", |
|||
key: "header_name", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "纳税人识别号", |
|||
width: 120, |
|||
dataIndex: "tax_num", |
|||
key: "tax_num", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "开票金额", |
|||
width: 120, |
|||
dataIndex: "invoice_money", |
|||
key: "invoice_money", |
|||
align: "center", |
|||
render: (_, record) => { |
|||
return _ && _ + "元"; |
|||
}, |
|||
}, |
|||
{ |
|||
title: "税额", |
|||
width: 120, |
|||
dataIndex: "tax", |
|||
key: "tax", |
|||
align: "center", |
|||
render: (_, record) => { |
|||
return _ && _ + "元"; |
|||
}, |
|||
}, |
|||
{ |
|||
title: "税率", |
|||
width: 120, |
|||
dataIndex: "tax_rate", |
|||
key: "tax_rate", |
|||
align: "center", |
|||
}, |
|||
|
|||
{ |
|||
title: "业务类型", |
|||
width: 120, |
|||
dataIndex: "order_type", |
|||
key: "order_type", |
|||
align: "center", |
|||
render: (_, record) => { |
|||
var buss = ""; |
|||
buss = Bussinss.filter((ele) => ele.value == _)[0].label; |
|||
return buss; |
|||
}, |
|||
}, |
|||
{ |
|||
title: "开票时间", |
|||
width: 120, |
|||
dataIndex: "create_time", |
|||
key: "create_time", |
|||
align: "center", |
|||
}, |
|||
]; |
|||
}; |
|||
//列表 |
|||
const columns = column(); |
|||
|
|||
export default PdaStat; |
|||
//时间 |
|||
const onChangeData = (dates, dataString) => { |
|||
setFormData({ |
|||
...FormData, |
|||
start_time: dataString[0], |
|||
end_time: dataString[1], |
|||
}); |
|||
}; |
|||
//页码 |
|||
function onShowSizeChange(pn, pn_size) { |
|||
setFormData({ |
|||
...FormData, |
|||
pn: pn, |
|||
page_size: pn_size, |
|||
}); |
|||
setFormDatas({ |
|||
...FormDatas, |
|||
pn: pn, |
|||
page_size: pn_size, |
|||
}); |
|||
} |
|||
|
|||
//获取页面显示数据 |
|||
const getData = (data) => { |
|||
setLoading(false); |
|||
ajax.ElectInvoice.getInvoiceMess({ ...data }).then( |
|||
(res) => { |
|||
if (parseInt(res?.status) === 20000) { |
|||
console.log(res); |
|||
setData({ |
|||
data: res?.data || {}, |
|||
total: res.total || 0, |
|||
}); |
|||
setLoading(true); |
|||
} else { |
|||
message.error(res?.message); |
|||
} |
|||
setLoading(true); |
|||
}, |
|||
(err) => { |
|||
console.log(err); |
|||
setLoading(true); |
|||
} |
|||
); |
|||
}; |
|||
useEffect(() => { |
|||
getData(FormDatas); |
|||
//调用接口 |
|||
}, [FormDatas]); |
|||
|
|||
return ( |
|||
<div className="pdastart"> |
|||
<div className="body_cenf"> |
|||
<div className="left_search"> |
|||
<div className="hrestit">查询条件</div> |
|||
<div className="form_item"> |
|||
<span className="lab">商户名称</span> |
|||
<div className="inputs"> |
|||
<Select |
|||
value={FormData.sell_name} |
|||
style={{ |
|||
width: "100%", |
|||
}} |
|||
placeholder="请选择" |
|||
options={[ |
|||
{ |
|||
value: "1", |
|||
label: "全部", |
|||
}, |
|||
{ |
|||
value: "2", |
|||
label: "错位共享停车场", |
|||
}, |
|||
{ |
|||
value: "3", |
|||
label: "公共事业集团", |
|||
}, |
|||
{ |
|||
value: "4", |
|||
label: "社会类停车场", |
|||
}, |
|||
{ |
|||
value: "5", |
|||
label: "智慧互通", |
|||
}, |
|||
]} |
|||
onChange={(e) => |
|||
setFormData({ |
|||
...FormData, |
|||
sell_name: e, |
|||
}) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="form_item"> |
|||
<span className="lab">登陆名</span> |
|||
<div className="inputs"> |
|||
<Input |
|||
value={FormData.head_name} |
|||
// style={{ |
|||
// width: 294, |
|||
// }} |
|||
placeholder="请输入内容" |
|||
onChange={(e) => |
|||
setFormData({ |
|||
...FormData, |
|||
head_name: e.target.value, |
|||
}) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="form_item"> |
|||
<span className="lab">姓名</span> |
|||
<div className="inputs"> |
|||
<Input |
|||
value={FormData.head_name} |
|||
// style={{ |
|||
// width: 294, |
|||
// }} |
|||
placeholder="请输入内容" |
|||
onChange={(e) => |
|||
setFormData({ |
|||
...FormData, |
|||
head_name: e.target.value, |
|||
}) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="form_item"> |
|||
<span className="lab">时间</span> |
|||
<div className="inputs"> |
|||
<RangePicker |
|||
// format={"YYYY-MM-DD HH:MM:SS"} |
|||
value={[ |
|||
FormData.start_time ? moment(FormData.start_time) : null, |
|||
FormData.end_time ? moment(FormData.end_time) : null, |
|||
]} |
|||
showTime={true} |
|||
onChange={(dates, dataString) => |
|||
onChangeData(dates, dataString) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="but_on"> |
|||
<span |
|||
className="sear_res" |
|||
onClick={() => { |
|||
var reset = formdata; |
|||
setFormData(reset); |
|||
setFormDatas(reset); |
|||
}} |
|||
> |
|||
重置 |
|||
</span> |
|||
<span |
|||
className={"sear_ser"} |
|||
onClick={() => { |
|||
setFormDatas({ ...FormData }); |
|||
}} |
|||
> |
|||
查询 |
|||
</span> |
|||
<span |
|||
className={"sear_ser"} |
|||
onClick={() => { |
|||
// setFormDatas({ ...FormData }); |
|||
}} |
|||
> |
|||
导出 |
|||
</span> |
|||
</div> |
|||
</div> |
|||
<div className="right_tab"> |
|||
<ResultFlow |
|||
hasLoad={true} |
|||
loading={loading} |
|||
resultData={Data.data} |
|||
message={"暂无数据"} |
|||
> |
|||
<div className="table_raps"> |
|||
<Table |
|||
className="yisa-table" |
|||
columns={columns} |
|||
rowKey={(record) => record.id} |
|||
dataSource={Data.data} |
|||
pagination={false} |
|||
scroll={{ |
|||
x: 1300, |
|||
y: "calc(100vh - 300px)", |
|||
}} |
|||
/> |
|||
</div> |
|||
<div> |
|||
<Pagination |
|||
className="pagination-common" |
|||
showSizeChanger={true} |
|||
showQuickJumper={true} |
|||
// showTotal={() => `共 ${total_records} 条`} |
|||
total={Data.total} |
|||
current={FormData.pn} |
|||
pageSize={FormData.page_size} |
|||
pageSizeOptions={dictionary?.pageSizeOptions} |
|||
onChange={onShowSizeChange} |
|||
onShowSizeChange={onShowSizeChange} |
|||
/> |
|||
</div> |
|||
</ResultFlow> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
); |
|||
} |
|||
export default PdaStat; |
@ -1,15 +1,721 @@ |
|||
import React, { useState, useRef, useEffect } from "react"; |
|||
// import { message, Pagination, Table, Space, Modal, } from "antd"; |
|||
// import { dictionary, utils } from "@/config/common"; |
|||
// import moment from 'moment' |
|||
import { |
|||
message, |
|||
Pagination, |
|||
Table, |
|||
Select, |
|||
Input, |
|||
Popover, |
|||
Modal, |
|||
Row, |
|||
Form, |
|||
Col, |
|||
Button, |
|||
DatePicker, |
|||
} from "antd"; |
|||
import { dictionary, utils } from "@/config/common"; |
|||
import moment from "moment"; |
|||
import { DeleteOutlined } from "@ant-design/icons"; |
|||
import ajax from "@/services"; |
|||
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks'; |
|||
// import ajax from "@/services" |
|||
// import { FormInput, FormSelect, OptionPanel, ResultPanel, FormSliderPicker, AreaCascader, ImgResize, ImgZoom, } from "@/components" |
|||
// import "./index.scss"; |
|||
import { ResultFlow } from "@/components"; |
|||
import "./index.scss"; |
|||
// import errorImg from "@/assets/images/layout/error.png" |
|||
// import { useLocation } from "react-router-dom"; |
|||
const { RangePicker } = DatePicker; |
|||
const { TextArea } = Input; |
|||
function CreateInvoice() { |
|||
return <div>CreateInvoice</div> |
|||
const [form] = Form.useForm(); |
|||
//页面检索-重复 |
|||
const formdata = { |
|||
plate: "", //渠道类型id |
|||
payment_channels: "", //渠道类型id |
|||
operator_id: "", //运营商id |
|||
road_id: "", //操作人id |
|||
dealer_id: "", //操作人id |
|||
start_time: moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"), |
|||
end_time: moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"), |
|||
pn: "1", |
|||
page_size: "15", |
|||
}; |
|||
const formlayout = { |
|||
labelCol: { |
|||
span: 6, |
|||
}, |
|||
wrapperCol: { |
|||
span: 18, |
|||
}, |
|||
}; |
|||
//业务类型 |
|||
const Bussinss = [ |
|||
{ |
|||
label: "停车支付订单", |
|||
value: "1", |
|||
}, |
|||
{ |
|||
label: "停车卡订单", |
|||
value: "2", |
|||
}, |
|||
]; |
|||
//开票 |
|||
const pushred = [ |
|||
{ |
|||
text: "电子邮箱", |
|||
value: "email", |
|||
type: 1, |
|||
rules: [ |
|||
{ |
|||
required: true, |
|||
message: "电子邮箱不能为空", |
|||
}, |
|||
{ |
|||
pattern: |
|||
/^[A-Za-z0-9-_\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/, |
|||
message: "邮箱格式错误,请重新输入", |
|||
}, |
|||
], |
|||
}, |
|||
{ |
|||
text: "发票类型", |
|||
value: "qylx", |
|||
type: 2, |
|||
data: [ |
|||
{ |
|||
value: 1, |
|||
label: "个人", |
|||
}, |
|||
{ |
|||
value: 2, |
|||
label: "企业", |
|||
}, |
|||
], |
|||
rules: [ |
|||
{ |
|||
required: true, |
|||
message: "企业类型不能为空", |
|||
}, |
|||
], |
|||
}, |
|||
{ |
|||
text: "发票抬头", |
|||
value: "fptt", |
|||
rules: [ |
|||
{ |
|||
required: true, |
|||
message: "发票抬头不能为空", |
|||
}, |
|||
], |
|||
}, |
|||
{ |
|||
text: "纳税人识别号", |
|||
value: "nsrsbh", |
|||
rules: "", |
|||
}, |
|||
{ |
|||
text: "地址", |
|||
value: "dz", |
|||
rules: "", |
|||
}, |
|||
{ |
|||
text: "电话", |
|||
value: "dh", |
|||
rules: [ |
|||
{ |
|||
pattern: /^1[3|4|5|7|8|9]\d{9}$/, |
|||
message: "电话格式错误,请重新输入", |
|||
}, |
|||
], |
|||
}, |
|||
{ |
|||
text: "开户行", |
|||
value: "khh", |
|||
rules: "", |
|||
}, |
|||
{ |
|||
text: "账号", |
|||
value: "zh", |
|||
rules: "", |
|||
}, |
|||
]; |
|||
//检索 |
|||
const [FormData, setFormData] = useState(formdata); |
|||
//检索2 |
|||
const [FormDatas, setFormDatas] = useState(formdata); |
|||
//页面状态 |
|||
const [loading, setLoading] = useState(false); |
|||
//页面数据 |
|||
const [Data, setData] = useState({ |
|||
data: [], |
|||
total: 1, |
|||
}); |
|||
|
|||
//选中数据 |
|||
const [Selectdata, setSelectdata] = useState([]); |
|||
const [checkStrictly, setCheckStrictly] = useState(false); |
|||
//弹框显示? |
|||
const [Open, setOpen] = useState(false); |
|||
//备注 |
|||
const [Textcl, setTextcl] = useState(""); |
|||
const column = () => { |
|||
return [ |
|||
{ |
|||
title: "序号", |
|||
width: 60, |
|||
fixed: "left", |
|||
render: (text, record, index) => index + 1, |
|||
}, |
|||
{ |
|||
title: "区域", |
|||
dataIndex: "area", |
|||
key: "area", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "运营商名称", |
|||
dataIndex: "operator_id", |
|||
key: "operator_id", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "停车场名称", |
|||
dataIndex: "road_id", |
|||
key: "road_id", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "车牌号", |
|||
dataIndex: "plate_number", |
|||
key: "plate_number", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "开票金额", |
|||
dataIndex: "invoice_tclass", |
|||
key: "invoice_tclass", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "渠道类型", |
|||
dataIndex: "payment_channels", |
|||
key: "payment_channels", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "业务类型", |
|||
dataIndex: "order_type", |
|||
key: "order_type", |
|||
align: "center", |
|||
render: (_, record) => { |
|||
var buss = ""; |
|||
buss = Bussinss.filter((ele) => ele.value == _)[0].label; |
|||
return buss; |
|||
}, |
|||
}, |
|||
{ |
|||
title: "支付设备", |
|||
dataIndex: "payment_equipment", |
|||
key: "payment_equipment", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "操作人", |
|||
dataIndex: "dealer", |
|||
key: "dealer", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "支付时间", |
|||
dataIndex: "pay_time", |
|||
key: "pay_time", |
|||
width: 120, |
|||
fixed: "right", |
|||
align: "center", |
|||
}, |
|||
{ |
|||
title: "操作", |
|||
dataIndex: "operation", |
|||
key: "operation", |
|||
fixed: "right", |
|||
width: 100, |
|||
align: "center", |
|||
render: (_, record) => { |
|||
return ( |
|||
<div className="btrnr"> |
|||
<Button |
|||
type="primary" |
|||
onClick={() => { |
|||
form.setFieldsValue({ |
|||
email: record.email, |
|||
qylx: record.employee, |
|||
fptt: record.invoice_t, |
|||
}); |
|||
setTextcl(record); |
|||
setOpen(true); |
|||
}} |
|||
> |
|||
开票 |
|||
</Button> |
|||
<a>支付详情</a> |
|||
</div> |
|||
); |
|||
}, |
|||
}, |
|||
]; |
|||
}; |
|||
//列表 |
|||
const columns = column(); |
|||
|
|||
// |
|||
const rowSelection = { |
|||
onChange: (selectedRowKeys, selectedRows) => { |
|||
setSelectdata(selectedRows); |
|||
}, |
|||
}; |
|||
|
|||
//时间 |
|||
const onChangeData = (dates, dataString) => { |
|||
setFormData({ |
|||
...FormData, |
|||
start_time: dataString[0], |
|||
end_time: dataString[1], |
|||
}); |
|||
}; |
|||
//页码 |
|||
function onShowSizeChange(pn, pn_size) { |
|||
setFormData({ |
|||
...FormData, |
|||
pn: pn, |
|||
page_size: pn_size, |
|||
}); |
|||
setFormDatas({ |
|||
...FormDatas, |
|||
pn: pn, |
|||
page_size: pn_size, |
|||
}); |
|||
} |
|||
//合并开票 |
|||
const InvoiceAnd = () => { |
|||
if (!Selectdata.length) { |
|||
message.warn("至少选择一项开票信息"); |
|||
} else { |
|||
setOpen(true); |
|||
console.log("还没想好"); |
|||
} |
|||
}; |
|||
//提交 |
|||
const SubmitPush = () => { |
|||
form |
|||
.validateFields() |
|||
.then((val) => { |
|||
console.log(val); |
|||
// ajax.submitPush({ ...val }).then((res) => { |
|||
// if (res.status == 20000) { |
|||
// form.resetFields(); |
|||
// message.success(res.message); |
|||
// } else { |
|||
// message.error(res.message); |
|||
// } |
|||
// }); |
|||
}) |
|||
.catch((e) => { |
|||
console.log(e); |
|||
}); |
|||
}; |
|||
//表单输出 |
|||
const FormTable = (data, disabledcol) => { |
|||
return ( |
|||
<Form |
|||
form={form} |
|||
name="dyamic_rule" |
|||
style={{ |
|||
width: 760, |
|||
}} |
|||
> |
|||
<Row gutter={24}> |
|||
{data.map((ele, index) => { |
|||
if (index % 2 == 0) { |
|||
return ( |
|||
<Col span={12} key={index}> |
|||
{ele.type == 2 ? ( |
|||
<Form.Item |
|||
{...formlayout} |
|||
key={ele.text} |
|||
name={ele.value} |
|||
label={ele.text} |
|||
rules={ele.rules} |
|||
> |
|||
<Select |
|||
placeholder={`请选择${ele.text}`} |
|||
allowClear |
|||
disabled={disabledcol.includes(index + 1)} |
|||
options={ele.data} |
|||
></Select> |
|||
</Form.Item> |
|||
) : ( |
|||
<Form.Item |
|||
{...formlayout} |
|||
key={ele.text} |
|||
name={ele.value} |
|||
label={ele.text} |
|||
rules={ele.rules} |
|||
> |
|||
<Input |
|||
placeholder={`请输入${ele.text}`} |
|||
disabled={disabledcol.includes(index + 1)} |
|||
></Input> |
|||
</Form.Item> |
|||
)} |
|||
</Col> |
|||
); |
|||
} else { |
|||
return ( |
|||
<Col span={12} key={index}> |
|||
{ele.type == 2 ? ( |
|||
<Form.Item |
|||
{...formlayout} |
|||
key={ele.text} |
|||
name={ele.value} |
|||
label={ele.text} |
|||
rules={ele.rules} |
|||
> |
|||
<Select |
|||
placeholder={`请选择${ele.text}`} |
|||
allowClear |
|||
disabled={disabledcol.includes(index + 1)} |
|||
options={ele.data} |
|||
></Select> |
|||
</Form.Item> |
|||
) : ( |
|||
<Form.Item |
|||
{...formlayout} |
|||
key={ele.text} |
|||
name={ele.value} |
|||
label={ele.text} |
|||
rules={ele.rules} |
|||
> |
|||
<Input |
|||
placeholder={`请输入${ele.text}`} |
|||
disabled={disabledcol.includes(index + 1)} |
|||
></Input> |
|||
</Form.Item> |
|||
)} |
|||
</Col> |
|||
); |
|||
} |
|||
})} |
|||
</Row> |
|||
</Form> |
|||
); |
|||
}; |
|||
//获取页面显示数据 |
|||
const getData = (data) => { |
|||
setLoading(false); |
|||
ajax.ElectInvoice.getInvoice({ ...data }).then( |
|||
(res) => { |
|||
if (parseInt(res?.status) === 20000) { |
|||
setData({ |
|||
data: res?.data.list || {}, |
|||
total: res.data.total || 0, |
|||
}); |
|||
setLoading(true); |
|||
} else { |
|||
message.error(res?.message); |
|||
} |
|||
setLoading(true); |
|||
}, |
|||
(err) => { |
|||
console.log(err); |
|||
setLoading(true); |
|||
} |
|||
); |
|||
}; |
|||
useEffect(() => { |
|||
getData(FormDatas); |
|||
//调用接口 |
|||
}, [FormDatas]); |
|||
|
|||
return ( |
|||
<div className="CreateInvoice"> |
|||
<div className="body_cenf"> |
|||
<div className="left_search"> |
|||
<div className="hrestit">查询条件</div> |
|||
<div className="form_item"> |
|||
<span className="lab">运营商名称</span> |
|||
<div className="inputs"> |
|||
<Select |
|||
value={FormData.operator_id} |
|||
style={{ |
|||
width: "100%", |
|||
}} |
|||
placeholder="请选择" |
|||
options={[ |
|||
{ |
|||
value: "1", |
|||
label: "全部", |
|||
}, |
|||
{ |
|||
value: "2", |
|||
label: "错位共享停车场", |
|||
}, |
|||
{ |
|||
value: "3", |
|||
label: "公共事业集团", |
|||
}, |
|||
{ |
|||
value: "4", |
|||
label: "社会类停车场", |
|||
}, |
|||
{ |
|||
value: "5", |
|||
label: "智慧互通", |
|||
}, |
|||
]} |
|||
onChange={(e) => |
|||
setFormData({ |
|||
...FormData, |
|||
operator_id: e, |
|||
}) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="form_item"> |
|||
<span className="lab">渠道类型</span> |
|||
<div className="inputs"> |
|||
<Select |
|||
value={FormData.payment_channels} |
|||
style={{ |
|||
width: "100%", |
|||
}} |
|||
placeholder="请选择" |
|||
options={[ |
|||
{ |
|||
value: "1", |
|||
label: "全部", |
|||
}, |
|||
{ |
|||
value: "2", |
|||
label: "余额", |
|||
}, |
|||
{ |
|||
value: "3", |
|||
label: "现金", |
|||
}, |
|||
{ |
|||
value: "4", |
|||
label: "微信", |
|||
}, |
|||
{ |
|||
value: "5", |
|||
label: "支付宝", |
|||
}, |
|||
{ |
|||
value: "6", |
|||
label: "系统录入", |
|||
}, |
|||
{ |
|||
value: "7", |
|||
label: "招商银行", |
|||
}, |
|||
{ |
|||
value: "8", |
|||
label: "数字人民币", |
|||
}, |
|||
{ |
|||
value: "9", |
|||
label: "车场自收", |
|||
}, |
|||
{ |
|||
value: "10", |
|||
label: "ETC", |
|||
}, |
|||
]} |
|||
onChange={(e) => |
|||
setFormData({ |
|||
...FormData, |
|||
payment_channels: e, |
|||
}) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="form_item"> |
|||
<span className="lab">车牌号</span> |
|||
<div className="inputs"> |
|||
<Input |
|||
value={FormData.plate} |
|||
// style={{ |
|||
// width: 294, |
|||
// }} |
|||
placeholder="请输入车牌号" |
|||
onChange={(e) => |
|||
setFormData({ |
|||
...FormData, |
|||
plate: e.target.value, |
|||
}) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="form_item"> |
|||
<span className="lab">停车场名称</span> |
|||
<div className="inputs"> |
|||
<Input |
|||
value={FormData.road_id} |
|||
// style={{ |
|||
// width: 294, |
|||
// }} |
|||
placeholder="请输入停车场名称" |
|||
onChange={(e) => |
|||
setFormData({ |
|||
...FormData, |
|||
road_id: e.target.value, |
|||
}) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="form_item"> |
|||
<span className="lab">支付时间</span> |
|||
<div className="inputs"> |
|||
<RangePicker |
|||
// format={"YYYY-MM-DD HH:MM:SS"} |
|||
value={[ |
|||
FormData.start_time ? moment(FormData.start_time) : null, |
|||
FormData.end_time ? moment(FormData.end_time) : null, |
|||
]} |
|||
showTime={true} |
|||
onChange={(dates, dataString) => |
|||
onChangeData(dates, dataString) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="form_item"> |
|||
<span className="lab">操作人</span> |
|||
<div className="inputs"> |
|||
<Input |
|||
value={FormData.dealer_id} |
|||
// style={{ |
|||
// width: 294, |
|||
// }} |
|||
placeholder="请输入操作人" |
|||
onChange={(e) => |
|||
setFormData({ |
|||
...FormData, |
|||
dealer_id: e.target.value, |
|||
}) |
|||
} |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div className="but_on"> |
|||
<span |
|||
className="sear_res" |
|||
onClick={() => { |
|||
var reset = formdata; |
|||
setFormData(reset); |
|||
setFormDatas(reset); |
|||
}} |
|||
> |
|||
重置 |
|||
</span> |
|||
<span |
|||
className={"sear_ser"} |
|||
onClick={() => { |
|||
setFormDatas({ ...FormData }); |
|||
}} |
|||
> |
|||
查询 |
|||
</span> |
|||
<span |
|||
className={"sear_ser"} |
|||
onClick={() => { |
|||
InvoiceAnd(); |
|||
}} |
|||
> |
|||
合并开票 |
|||
</span> |
|||
</div> |
|||
</div> |
|||
<div className="right_tab"> |
|||
<ResultFlow |
|||
hasLoad={true} |
|||
loading={loading} |
|||
resultData={Data.data} |
|||
message={"暂无数据"} |
|||
> |
|||
<div className="table-wrap"> |
|||
<Table |
|||
className="yisa-table" |
|||
columns={columns} |
|||
rowKey={(record) => record.id} |
|||
dataSource={Data.data} |
|||
pagination={false} |
|||
rowSelection={{ |
|||
...rowSelection, |
|||
checkStrictly, |
|||
}} |
|||
scroll={{ |
|||
y: "calc(100vh - 300px)", |
|||
}} |
|||
/> |
|||
</div> |
|||
<div> |
|||
<Pagination |
|||
className="pagination-common" |
|||
showSizeChanger={true} |
|||
showQuickJumper={true} |
|||
// showTotal={() => `共 ${total_records} 条`} |
|||
total={Data.total} |
|||
current={FormData.pn} |
|||
pageSize={FormData.page_size} |
|||
pageSizeOptions={dictionary?.pageSizeOptions} |
|||
onChange={onShowSizeChange} |
|||
onShowSizeChange={onShowSizeChange} |
|||
/> |
|||
</div> |
|||
</ResultFlow> |
|||
</div> |
|||
</div> |
|||
<Modal |
|||
open={Open} |
|||
footer={null} |
|||
onCancel={() => { |
|||
setOpen(false); |
|||
}} |
|||
width={800} |
|||
className="modal-invoicerepeat" |
|||
title={"开具电子发票"} |
|||
> |
|||
{FormTable(pushred, [])} |
|||
<div className="fptext"> |
|||
<p className="fpo"> |
|||
<span>发票内容</span> |
|||
<span>停车费</span> |
|||
</p> |
|||
<p className="fpo"> |
|||
<span>发票金额</span> |
|||
<span>4.00元</span> |
|||
</p> |
|||
</div> |
|||
<div className="submitBtn"> |
|||
<p className="ant-btn submit" onClick={() => SubmitPush()}> |
|||
提交 |
|||
</p> |
|||
<p |
|||
className="ant-btn cancel" |
|||
onClick={() => { |
|||
form.resetFields(); |
|||
setOpen(false); |
|||
}} |
|||
> |
|||
取消 |
|||
</p> |
|||
</div> |
|||
</Modal> |
|||
</div> |
|||
); |
|||
} |
|||
|
|||
export default CreateInvoice; |
|||
export default CreateInvoice; |
1396
src/pages/FinancialMgm/Invoice/CreateInvoiceRecord/loadable.jsx
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,43 @@ |
|||
import ajax from "../../config/ajax" |
|||
|
|||
//************************发票记录
|
|||
// 获取列表数据
|
|||
const getInvoiceMess = (params)=>{ |
|||
return ajax({ |
|||
url: "/api/fin/elec_invoice/get_list", |
|||
type: "post", |
|||
data: params, |
|||
}) |
|||
} |
|||
//发票冲红
|
|||
const FlushRed = (params) => { |
|||
return ajax({ |
|||
url: "/api/fin/elec_invoice/deal_invoice", |
|||
type: "post", |
|||
data: params, |
|||
}) |
|||
} |
|||
// 订阅任务-新增基本信息订阅级别数据获取
|
|||
const getModalResource = ()=>{ |
|||
return ajax({ |
|||
url: "/api/v1/controlalarm/subscribes/get_deploy_subscribe_modal_resource", |
|||
type: "get", |
|||
// data: params,
|
|||
}) |
|||
} |
|||
//************************开具发票
|
|||
// 获取列表数据
|
|||
const getInvoice = (params)=>{ |
|||
return ajax({ |
|||
url: "/api/fin/elec_invoice/get_invoice_list", |
|||
type: "post", |
|||
data: params, |
|||
}) |
|||
} |
|||
|
|||
|
|||
export default { |
|||
getInvoiceMess, |
|||
FlushRed, |
|||
getInvoice, |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue