ttk-app-core
Version:
@ttk/recat enterprise develop framework
87 lines (76 loc) • 2.6 kB
JavaScript
import React, { useEffect, useCallback, useState } from 'react'
import { Button, Modal } from 'antd'
import "./style.less"
export default React.memo(Page)
function Page(props) {
const [modalText, setModalText] = useState('')
const [showModal, setShowModal] = useState(false)
const [confirmLoading, setConfirmLoading] = useState(false)
const onOk = useCallback(() => {
setConfirmLoading(true)
console.log('click ok')
setTimeout(() => {
// 异步关闭
setShowModal(false)
setConfirmLoading(false)
}, 2000)
})
const onCancel = useCallback(() => {
console.log('click cancel')
setShowModal(false)
})
const onAfterClose = useCallback(() => {
console.log('doing after close')
})
// method方式弹出modal
const onClickMethod = useCallback((value) => {
Modal[value]({
title: `${value} modal`,
maskClosable: true,
onOk: () => {
console.log('click ok')
},
onCancel: () => {
console.log('click cancel')
},
})
})
// 模板方式弹出modal
const onClickTemplate = useCallback((value) => {
setModalText(value)
setShowModal(true)
})
return (
<div className="modal-demo" style={{padding: '20px'}}>
<div>
<label>method方式:</label>
<Button onClick={() => onClickMethod('info')}>info</Button>
<Button onClick={() => onClickMethod('success')} type="primary">success</Button>
<Button onClick={() => onClickMethod('error')} type="danger">error</Button>
<Button onClick={() => onClickMethod('warning')} type="primary">warning</Button>
<Button onClick={() => onClickMethod('confirm')} type="primary">confirm</Button>
</div>
<div>
<label>模板方式:</label>
<Button onClick={() => onClickTemplate('info')}>info</Button>
<Button onClick={() => onClickTemplate('success')} type="primary">success</Button>
<Button onClick={() => onClickTemplate('error')} type="danger">error</Button>
<Button onClick={() => onClickTemplate('warning')} type="primary">warning</Button>
<Button onClick={() => onClickTemplate('confirm')} type="primary">confirm</Button>
<Modal
title={'title: ' + modalText}
visible={showModal}
onOk={onOk}
onCancel={onCancel}
afterClose={onAfterClose}
confirmLoading={confirmLoading}
okText="确认"
centered
cancelText="取消"
>
<p>你点击了 {modalText}</p>
</Modal>
</div>
</div>
)
}