This commit is contained in:
lyp 2024-12-02 15:31:39 +08:00
commit 82d446ffe2
3 changed files with 43 additions and 41 deletions

View File

@ -1,5 +1,5 @@
import React, { useState } from 'react' import {useState} from 'react'
import { post,Axios,get } from "../../util/AjaxUtils.ts"; import {post, Axios, get} from "../../util/AjaxUtils.ts";
import useMessage from "antd/es/message/useMessage"; import useMessage from "antd/es/message/useMessage";
import { import {
Form, Form,
@ -7,7 +7,8 @@ import {
Input, Button Input, Button
} from 'antd'; } from 'antd';
import ContractText from '../ContractText/ContractText' import ContractText from '../ContractText/ContractText'
import { useDispatch } from 'react-redux' import {useDispatch} from 'react-redux'
export default function ContractModal(props: any) { export default function ContractModal(props: any) {
const [messageApi, messageApiHolder] = useMessage(); const [messageApi, messageApiHolder] = useMessage();
const [modalOpen, setModalOpen] = useState(false) const [modalOpen, setModalOpen] = useState(false)
@ -15,6 +16,7 @@ export default function ContractModal(props: any) {
const [name, setName] = useState(''); // 甲方姓名状态 const [name, setName] = useState(''); // 甲方姓名状态
const [phone, setPhone] = useState(''); // 电话状态 const [phone, setPhone] = useState(''); // 电话状态
const [address, setAddress] = useState(''); // 地址状态 const [address, setAddress] = useState(''); // 地址状态
const [isSaving, setIsSaving] = useState(false);
const onFinish = (values: any) => { const onFinish = (values: any) => {
setName(values.name); setName(values.name);
setPhone(values.phone); setPhone(values.phone);
@ -24,30 +26,33 @@ export default function ContractModal(props: any) {
const dispath = useDispatch() const dispath = useDispatch()
const getContractArray = (page: any) => { const getContractArray = (page: any) => {
get({ get({
messageApi, messageApi,
url: `/api/contract/management/listpage/self`, url: `/api/contract/management/listpage/self`,
config: { config: {
params: { params: {
page: page, page: page,
rows: 10 rows: 10
}
},
onSuccess(data: any) {
console.log(data);
dispath({
type: 'upContractArray',
val: data.data.rows
})
dispath({
type: 'upContractTotal',
val: data.data.total
})
// setContractArray(data.data.rows)
} }
},
onSuccess(data: any) {
console.log(data);
dispath({
type: 'upContractArray',
val: data.data.rows
})
dispath({
type: 'upContractTotal',
val: data.data.total
})
// setContractArray(data.data.rows)
}
}) })
} }
const downContract = () => { const downContract = () => {
if (isSaving) {
return;
}
post<any>({ post<any>({
messageApi, messageApi,
url: `/api/contract/management/save`, url: `/api/contract/management/save`,
@ -57,23 +62,22 @@ export default function ContractModal(props: any) {
firstPartyPhone: phone firstPartyPhone: phone
}, },
onBefore() { onBefore() {
setIsSaving(true);
}, },
onSuccess(data) { onSuccess(data) {
// console.log(data.data.data); // console.log(data.data.data);
// console.log('成功'); // console.log('成功');
const contractManagementId = data.data.data const contractManagementId = data.data.data
window.open(`${Axios.defaults?.baseURL}/api/contract/management/download/${contractManagementId}`) window.open(`${Axios.defaults?.baseURL}/api/contract/management/download/${contractManagementId}`)
getContractArray(1) getContractArray(1)
setModalOpen(false) setModalOpen(false)
props.closeModal() props.closeModal()
}, },
onFinally() { onFinally() {
setIsSaving(false);
} }
}) })
} }
return ( return (
<div> <div>
@ -82,8 +86,8 @@ export default function ContractModal(props: any) {
name="Form" name="Form"
form={form} form={form}
onFinish={onFinish} onFinish={onFinish}
initialValues={{ softWare: '' }} initialValues={{softWare: ''}}
style={{ maxWidth: 600, marginTop: 20 }} style={{maxWidth: 600, marginTop: 20}}
> >
<div className='refunModal-item'> <div className='refunModal-item'>
<div className='refunModal-title'> <div className='refunModal-title'>
@ -93,7 +97,7 @@ export default function ContractModal(props: any) {
<Form.Item <Form.Item
name="name" name="name"
rules={[{ required: true, message: '请输入甲方姓名!' }]} rules={[{required: true, message: '请输入甲方姓名!'}]}
> >
<Input style={{ <Input style={{
width: 405, width: 405,
@ -101,7 +105,7 @@ export default function ContractModal(props: any) {
background: '#FFF', background: '#FFF',
color: 'black' color: 'black'
}} }}
placeholder="甲方姓名" placeholder="甲方姓名"
> >
</Input> </Input>
@ -119,7 +123,7 @@ export default function ContractModal(props: any) {
<Form.Item <Form.Item
name="phone" name="phone"
rules={[ rules={[
{ required: true, message: '请输入联联系电话!' }, {required: true, message: '请输入联联系电话!'},
{ {
pattern: /^1[3456789]\d{9}$/, pattern: /^1[3456789]\d{9}$/,
message: '请输入正确的手机号码', message: '请输入正确的手机号码',
@ -151,7 +155,7 @@ export default function ContractModal(props: any) {
<Form.Item <Form.Item
name="address" name="address"
rules={[{ required: true, message: '请输入联系地址!' }]} rules={[{required: true, message: '请输入联系地址!'}]}
> >
<Input style={{ <Input style={{
width: 405, width: 405,
@ -159,7 +163,7 @@ export default function ContractModal(props: any) {
background: '#FFF', background: '#FFF',
color: 'black' color: 'black'
}} }}
placeholder="联系地址" placeholder="联系地址"
> >
</Input> </Input>
@ -170,7 +174,6 @@ export default function ContractModal(props: any) {
</div> </div>
<Form.Item> <Form.Item>
<div className='refunModal-btn'> <div className='refunModal-btn'>
<Button type="primary" htmlType="submit" style={{ <Button type="primary" htmlType="submit" style={{
@ -192,7 +195,7 @@ export default function ContractModal(props: any) {
onCancel={() => { onCancel={() => {
setModalOpen(false) setModalOpen(false)
}} }}
okButtonProps={{ style: { background: 'red', color: 'white' } }} okButtonProps={{style: {background: 'red', color: 'white'}}}
width={850} width={850}
centered centered
@ -200,7 +203,7 @@ export default function ContractModal(props: any) {
<div className='contract'> <div className='contract'>
<ContractText name={name} phone={phone} address={address}></ContractText> <ContractText name={name} phone={phone} address={address}></ContractText>
</div> </div>
<div style={{ display: 'flex', justifyContent: 'flex-end', marginTop: 20 }}> <div style={{display: 'flex', justifyContent: 'flex-end', marginTop: 20}}>
<Button type="primary" onClick={ <Button type="primary" onClick={
downContract downContract
}></Button> }></Button>

View File

@ -1,4 +1,3 @@
import React from 'react'
import './ContractText.css' import './ContractText.css'
export default function ContractText(props: any) { export default function ContractText(props: any) {
const height = window.innerHeight - 200; const height = window.innerHeight - 200;

View File

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react' import { useEffect, useState } from 'react'
import { // Table, import { // Table,
Pagination, Pagination,
Table, Table,