From c81d5e9020b54190b894c92917f5a3e50959b318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B0=81=E7=BE=BD?= <2360164671@qq.com> Date: Mon, 2 Jan 2023 18:28:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E6=8A=A5=E9=94=80=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reimbursement/mine/MyReimbursement.tsx | 7 +- .../mine/ReimbursementCreate.tsx | 74 +++++++++++++++---- 2 files changed, 66 insertions(+), 15 deletions(-) diff --git a/src/pages/reimbursement/mine/MyReimbursement.tsx b/src/pages/reimbursement/mine/MyReimbursement.tsx index 9a6c4bd..d5a0e91 100644 --- a/src/pages/reimbursement/mine/MyReimbursement.tsx +++ b/src/pages/reimbursement/mine/MyReimbursement.tsx @@ -25,6 +25,7 @@ export type Department = { departmentName: string; } export type TableListItem = { + key:number; id: number; beginDate: number; duration: number; @@ -43,6 +44,7 @@ export type TableListItem = { let fakeData: TableListItem[] = []; for (let i = 0; i < 94; i++) { fakeData.push({ + key:i, id: i + 1, beginDate: Date.UTC(2022, i % 11 + 1, i % 28 + 1), endDate: Date.UTC(2022, i % 11 + 1, i % 28 + 1) + 1000 * 60 * 60 * 24 * i + 1, @@ -72,7 +74,7 @@ class Subpage extends React.Component { tableAction = React.createRef(); departments = new Map() - constructor(props: {}) { + constructor(props: any) { super(props); this.state = { searchWord: "", @@ -206,6 +208,7 @@ class Subpage extends React.Component { let result: TableListItem[] = [] for (let i = 0; i < value.length; i++) { result.push({ + key:i, 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, @@ -375,7 +378,7 @@ class Subpage extends React.Component { function MyReimbursement() { return ( <> - + ) } diff --git a/src/pages/reimbursement/mine/ReimbursementCreate.tsx b/src/pages/reimbursement/mine/ReimbursementCreate.tsx index 935b8f6..6c48942 100644 --- a/src/pages/reimbursement/mine/ReimbursementCreate.tsx +++ b/src/pages/reimbursement/mine/ReimbursementCreate.tsx @@ -6,8 +6,8 @@ import { Form, Input, InputNumber, - Modal, notification, - Row + Modal, notification, Popover, + Row, Select, Tag } from "antd"; import {FormInstance} from "antd/es/form"; import {Invoice} from "../../../models/Reimbursement"; @@ -21,7 +21,7 @@ import {FieldData} from "rc-field-form/lib/interface"; import {invoiceTypeNameMap} from "../../../models/Invoice"; import SingleInvoiceSelector from "./component/SingleInvoiceSelector"; import MultiInvoiceSelector from "./component/MultiInvoiceSelector"; -import {StatisticCard} from "@ant-design/pro-components"; +import {ActionType, StatisticCard} from "@ant-design/pro-components"; const {Operation} = StatisticCard; @@ -37,11 +37,14 @@ const openNotification = (hint: string) => { class ReimbursementCreate extends React.Component { formRef = React.createRef(); + actionRef = React.createRef(); invoiceSelector1 = React.createRef(); invoiceSelector2 = React.createRef(); invoiceSelector3 = React.createRef(); departments: { departmentId: number, departmentName: string }[] = []; + place: { placeName: string, subsidyPerDay: number }[] = [] + constructor(props: {}) { super(props); let managingDepartment = store.getState().staff.managingDepartment @@ -66,8 +69,12 @@ class ReimbursementCreate extends React.Component { icon: , }) }) + axiosInstance.get("common/place").then((res) => { + this.place = res.data + this.formRef.current?.setFieldsValue({departureName: "", destinationName: ""}) + this.formRef.current?.resetFields(["departureName", "destinationName"]) + }) store.subscribe(this.handleStoreChange); - console.log(store.getState().staff.staffDepartments) this.state = { loading: false, open: this.props.open, @@ -90,7 +97,7 @@ class ReimbursementCreate extends React.Component { } handleStoreChange = () => { - this.departments=[] + this.departments = [] let managingDepartment = store.getState().staff.managingDepartment if (managingDepartment !== null && managingDepartment !== undefined) { this.departments.push({ @@ -215,7 +222,19 @@ class ReimbursementCreate extends React.Component { } return res } - + calculateAddition = () => { + if(store.getState().staff.staffBase===this.formRef.current?.getFieldValue("destinationName")) + return {value:0,hint:"出差地点与基地相同,无补贴"} + let addition = 0 + this.place.map((item)=>{ + if(addition===this.formRef.current?.getFieldValue("destinationName")) + addition=item.subsidyPerDay + }) + let days=0 + if(this.state.duration!==undefined) + days=this.state.duration + return {value:addition*days,hint:"每日补贴"+addition+"元,共"+days+"天"} + } render() { return ( { duration: 0 }}> - + - + +