提交 571fd437 authored 作者: 徐立's avatar 徐立

新增保存草稿按钮

上级 049a2ad7
...@@ -12,13 +12,23 @@ import AddModel from './AddModal'; ...@@ -12,13 +12,23 @@ import AddModel from './AddModal';
import {preHandle} from '../../utils/myutils'; import {preHandle} from '../../utils/myutils';
import { connect } from 'dva'; import { connect } from 'dva';
import { openToast } from '../../location/Notification'; import { openToast } from '../../location/Notification';
import { isEmpty } from '../../copy';
@connect() @connect()
export default class idnex extends Component { export default class idnex extends Component {
constructor(props){ constructor(props){
super(props) super(props)
this.state = { this.state = {
visible: false, visible: false,
isLoading: false isLoading: false,
draftId: props.draftId??'',
}
}
componentWillReceiveProps(nextProps){
const { draftId } = nextProps
if(draftId) { // 接收到最新草稿Id更新
this.setState({
draftId
})
} }
} }
showModal = () => { showModal = () => {
...@@ -44,12 +54,15 @@ export default class idnex extends Component { ...@@ -44,12 +54,15 @@ export default class idnex extends Component {
payload: { payload: {
content: JSON.stringify(values), // 表单数据 content: JSON.stringify(values), // 表单数据
appId: this.props.appId, // 这里应该由上级路由跳转传入 事务Id appId: this.props.appId, // 这里应该由上级路由跳转传入 事务Id
id: !!this.props.draftId ? this.props.draftId : null // 确认是否存在草稿表单Id存在即传入 id: !!this.state.draftId ? this.state.draftId : null // 确认是否存在草稿表单Id存在即传入
}, },
callback: val => { callback: val => {
if (val) { if (val) {
this.setState({
draftId:val.id
})
if(this.props?.callback){ if(this.props?.callback){
this.props.callback() this.props.callback(val)
} }
} else { } else {
openToast('error', '保存失败', '请尝试'); openToast('error', '保存失败', '请尝试');
...@@ -72,9 +85,45 @@ export default class idnex extends Component { ...@@ -72,9 +85,45 @@ export default class idnex extends Component {
visible: false visible: false
}) })
} }
handleDraft = () => {
let {dispatch, id, radioValue} = this.props;
this.setState({
isLoading:true
},() => {
this.props.form.validateFields((err, values) => {
if (!err) {
preHandle(values); // 引入 import {preHandle} from '@/webPublic/one_stop_public/utils/myutils.js'
dispatch({
type: 'affair/saveDraft',
payload: {
content: JSON.stringify(values), // 表单数据
appId: this.props.appId, // 这里应该由上级路由跳转传入 事务Id
id: !!this.state.draftId ? this.state.draftId : null // 确认是否存在草稿表单Id存在即传入
},
callback: val => {
if (isEmpty(val) === false) {
this.setState({ // 存在草稿后保存草稿Id 后续修改在这草稿Id上处理
draftId: val.id
})
openToast('success', '保存成功', '草稿保存成功');
} else {
openToast('error', '保存失败', '请尝试');
}
},
}).then((res) => {
this.setState({
isLoading:false
})
})
}
});
})
};
render() { render() {
const { const {
text text,
openDraftButton,
DraftButtonText,
} = this.props } = this.props
const { const {
visible, visible,
...@@ -82,6 +131,19 @@ export default class idnex extends Component { ...@@ -82,6 +131,19 @@ export default class idnex extends Component {
} = this.state } = this.state
return ( return (
<> <>
{
openDraftButton?
<Button
style={{
marginRight:20
}}
isLoading={isLoading}
onClick={this.handleDraft}
>
{DraftButtonText??'暂存草稿'}
</Button>
:null
}
<Button <Button
onClick={this.showModal} onClick={this.showModal}
isLoading={isLoading} isLoading={isLoading}
......
...@@ -14,6 +14,8 @@ import SumbitButton from '@/webPublic/one_stop_public/AffairButton/SumbitButton' ...@@ -14,6 +14,8 @@ import SumbitButton from '@/webPublic/one_stop_public/AffairButton/SumbitButton'
appId = {'事务ID'} // 事务ID appId = {'事务ID'} // 事务ID
text = '提交' // 按钮文本 text = '提交' // 按钮文本
draftId = {'草稿Id'} // 可不传 不传为发起全新 传后修改草稿 draftId = {'草稿Id'} // 可不传 不传为发起全新 传后修改草稿
openDraftButton = {true} // 开启保存草稿按钮
DraftButtonText = '草稿按钮文本' // 草稿按钮内置文本
/> />
``` ```
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论