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

新增保存草稿按钮

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