满足了开开的一个愿望

main
白封羽 2023-01-02 14:28:51 +08:00
parent 83f000fe47
commit 0fc89f7c50
4 changed files with 69 additions and 43 deletions

View File

@ -86,7 +86,7 @@ class Subpage extends React.Component<any, any> {
columns: ProColumns<TableListItem>[] = [
{
title: '报销单号',
width: 70,
width: 40,
dataIndex: 'id',
search: false,
sorter: true,
@ -123,9 +123,9 @@ class Subpage extends React.Component<any, any> {
dataIndex: 'amount',
search: false,
render: (_, item) =>
<>{item.amount.toFixed(2)}
<>{(item.amount/100.0).toFixed(2)}
<Popover
content={<>{item.invoiceAmount.toFixed(2)}<br/>{item.additionalAmount.toFixed(2)}</>}>
content={<>{(item.invoiceAmount/100.0).toFixed(2)}<br/>{(item.additionalAmount/100.0).toFixed(2)}</>}>
<ExclamationCircleOutlined style={{marginLeft: 5}}/>
</Popover>
</>
@ -143,7 +143,7 @@ class Subpage extends React.Component<any, any> {
},
{
title: '申请部门',
width: 80,
width: 90,
search: false,
dataIndex: 'departmentId',
valueEnum: this.departments,
@ -206,7 +206,7 @@ class Subpage extends React.Component<any, any> {
let result: TableListItem[] = []
for (let i = 0; i < value.length; i++) {
result.push({
id: value[i].reimbursementSubmitDepartment.departmentId,
id: value[i].reimbursementId,
beginDate: Date.parse(value[i].reimbursementDepartureInvoice.invoiceDate),
endDate: Date.parse(value[i].reimbursementDepartureInvoice.invoiceDate) + value[i].reimbursementTripDuration * 24 * 60 * 60 * 1000,
duration: value[i].reimbursementTripDuration,
@ -304,7 +304,6 @@ class Subpage extends React.Component<any, any> {
render() {
return (
<>
<ReimbursementCreate ref={this.createRef} open={this.state.onCreated} wrapClassName="Subpage"/>
<ProTable<TableListItem>
actionRef={this.tableAction}
columns={this.columns}
@ -368,6 +367,7 @@ class Subpage extends React.Component<any, any> {
// </Button>,
// ]}
/>
<ReimbursementCreate tableAction={this.tableAction} ref={this.createRef} open={this.state.onCreated} wrapClassName="Subpage"/>
</>);
}
}

View File

@ -34,6 +34,7 @@ const openNotification = (hint: string) => {
},
});
};
class ReimbursementCreate extends React.Component<any, any> {
formRef = React.createRef<FormInstance>();
invoiceSelector1 = React.createRef<SingleInvoiceSelector>();
@ -43,10 +44,11 @@ class ReimbursementCreate extends React.Component<any, any> {
constructor(props: {}) {
super(props);
if (store.getState().staff.managingDepartment != null && store.getState().staff.managingDepartment !== undefined) {
let managingDepartment = store.getState().staff.managingDepartment
if (managingDepartment !== null && managingDepartment !== undefined) {
this.departments.push({
departmentId: store.getState().staff.managingDepartment.departmentId,
departmentName: store.getState().staff.managingDepartment.departmentName,
departmentId: managingDepartment.departmentId,
departmentName: managingDepartment.departmentName,
})
}
console.log(store.getState().staff.staffDepartments)
@ -64,6 +66,7 @@ class ReimbursementCreate extends React.Component<any, any> {
icon: <UserOutlined/>,
})
})
store.subscribe(this.handleStoreChange);
console.log(store.getState().staff.staffDepartments)
this.state = {
loading: false,
@ -86,6 +89,37 @@ class ReimbursementCreate extends React.Component<any, any> {
}
}
handleStoreChange = () => {
this.departments=[]
let managingDepartment = store.getState().staff.managingDepartment
if (managingDepartment !== null && managingDepartment !== undefined) {
this.departments.push({
departmentId: managingDepartment.departmentId,
departmentName: managingDepartment.departmentName,
})
}
store.getState().staff.staffDepartments?.forEach((item) => {
this.departments.push({
departmentId: item.departmentId,
departmentName: item.departmentName,
})
})
let departmentsPropItems: any[] = [];
this.departments.map((item) => {
departmentsPropItems.push({
label: item.departmentName,
key: item.departmentId,
icon: <UserOutlined/>,
})
})
this.setState({
selectedDepartment: {id: this.departments[0].departmentId, name: this.departments[0].departmentName},
departmentsProps: {
items: departmentsPropItems,
onClick: this.handleMenuClick,
}
})
}
handleMenuClick: MenuProps['onClick'] = (e) => {
this.setState({
selectedDepartment: {
@ -107,39 +141,31 @@ class ReimbursementCreate extends React.Component<any, any> {
openNotification(checkResult.msg)
return
}
let otherInvoices = null
if(this.state.otherInvoices?.length>0){
otherInvoices = ""
for(let i=0;i<this.state.otherInvoices.length;i++){
if(i!==0){
otherInvoices += ","
}
otherInvoices += this.state.otherInvoices[i].invoiceId.toString()
}
}
let params = {
submitDepartmentId: this.state.selectedDepartment.id,
reimbursementNote: this.state.note ? this.state.note : "",
reimbursementDepartureInvoiceId: this.state.departureInvoice.invoiceId,
reimbursementDestinationInvoiceId: this.state.destinationInvoice?.invoiceId,
reimbursementOtherInvoiceIds: otherInvoices,
reimbursementOtherInvoiceIds: this.state.otherInvoices?.map((item: Invoice) => item.invoiceId),
reimbursementDepartureName: this.state.departureName,
reimbursementDestinationName: this.state.destinationName,
reimbursementDuration: this.state.duration,
reimbursementTripDuration: this.state.duration,
}
axiosInstance.post("common/reimbursement", params).then(response => {
openNotification("提交成功")
this.setState({open: false})
this.props.tableAction.current?.reload()
}).catch(error => {
console.log(error)
openNotification("提交失败")
openNotification(error.response.data?.msg !== "" ? error.response.data.msg : "提交失败")
})
}
cancel = () => {
this.setState({open: false})
}
changeDuration = (value: number | null) => {
return
if (value === null)
value = 0
this.setState({duration: value})
@ -152,11 +178,11 @@ class ReimbursementCreate extends React.Component<any, any> {
state["duration"] = (Number(Date.parse(allValues.destinationInvoice.invoiceDate)) - Number(Date.parse(allValues.departureInvoice.invoiceDate))) / 1000 / 60 / 60 / 24 + 1
if (state["duration"] < 0)
state["duration"] = 0
this.formRef.current?.setFieldsValue({duration: state["duration"]})
} else {
state['back'] = false
state["duration"] = 0
state["duration"] = allValues["duration"]
}
this.formRef.current?.setFieldsValue({duration: state["duration"]})
state['departureInvoice'] = allValues.departureInvoice
state["destinationInvoice"] = allValues.destinationInvoice
state["otherInvoices"] = allValues.otherInvoices
@ -270,8 +296,8 @@ class ReimbursementCreate extends React.Component<any, any> {
</Row>
<Form.Item label="附加票据" name="otherInvoices" rules={[{required: false}]}>
<MultiInvoiceSelector pickerOpen={false}
after={0}
//after={this.state.departureInvoice !== null && this.state.departureInvoice !== undefined ? Number(Date.parse(this.state.departureInvoice.invoiceDate)) : 0}
//after={0}
after={this.state.departureInvoice !== null && this.state.departureInvoice !== undefined ? Number(Date.parse(this.state.departureInvoice.invoiceDate)) : 0}
before={0} occupiedInvoices={this.getOccupiedInvoices(3)}
pickerTitle={"附加票据"} ref={this.invoiceSelector3}
/>

View File

@ -147,7 +147,7 @@ class MultiInvoiceSelector extends React.Component<any, any> {
pageNum: page - 1,
pageSize: this.state.pageSize,
invoiceUploaderId: store.getState().token.staffId,
invoiceStatus: 0,
invoiceStates: 0,
sortBy: "invoiceDate",
asc: true,
}
@ -199,7 +199,7 @@ class MultiInvoiceSelector extends React.Component<any, any> {
before: props.before,
occupiedInvoices: props.occupiedInvoices,
}
props.onChange(prev)
return {
selectedInvoice: prev,
after: props.after,

View File

@ -182,7 +182,7 @@ class SingleInvoiceSelector extends React.Component<any, any> {
pageNum: page - 1,
pageSize: this.state.pageSize,
invoiceUploaderId: store.getState().token.staffId,
invoiceStatus: 0,
invoiceStates: 0,
sortBy: "invoiceDate",
asc: true,
}