根据提供的代码,您可以将templateId
字段传递给basicIfo
数据,并在最后的handleFilterSubmit
事件中使用。请按照以下步骤进行修改:
在组件的状态(state)中添加一个新的字段
templateId: null
。修改
componentWillMount()
方法如下:
componentWillMount() {
console.log('this.props.params', this.props.params);
const { productCode, type, templateId, versionNo } = this.props.params;
this.setState({ templateId }); // 将templateId保存到组件状态中
this.props.updateStatus(type);
if (type !== 'add' && type !== 'copy') {
this.props.productDetail({ productCode, versionNo, taskId: '' });
this.props.updateProduct({ productCode, versionNo, taskId: '' });
}
}
- 修改
basicIfo()
方法如下:
basicIfo(values) {
console.log(values);
const { templateId } = this.state;
// 在values对象中添加templateId字段
const updatedValues = {
...values,
templateId: templateId || ''
};
this.setState({
basicIfo: updatedValues
});
this.basicIfo = updatedValues;
}
- 修改
andleFilterSubmit()
方法如下:
andleFilterSubmit(isSave) {
console.log(this.basicRef, 'this.basicRef');
// 获取保存在组件状态中的templateId值
const { templateId } = this.state;
console.log(this.basicIfo);
if (isSave) {
const values = {
...this.props.productData,
status: 'prodPass',
note: this.basicRef.formVales.note,
fpmsBaseInfo: {
...this.basicIfo.fpmsBaseInfo, // 使用basicIfo中的fpmsBaseInfo字段
templateId // 将templateId字段添加到fpmsBaseInfo中
},
fpmsControlInfo: this.caculateRef.formVales,
fpmsCostAccountingInfo: this.controllRef.formVales,
fpmsPeriodPublicationInfo: this.periodRef.terms,
fpmsFileInfo: this.fileRef.files,
limitCode: this.limitCodeRef.limitCode
};
const { type } = this.props.params;
console.log(values, type, '903420943295u238y5782352390502359');
if (type === 'add' || type === 'copy') { // 修改此处条件判断
this.addProductModel(values);
} else {
const status = type === 'wh' ? null : values.status;
this.updateProduct({ ...values, status });
}
} else {
this.setState(prevState => ({
activeKey: prevState.activeKey + 1
}));
}
if (this.state.activeKey === 6) {
const values = {
...this.props.productData,
status: 'prodPass',
// 注意这里的修改:使用保存在组件状态中的basicIfo数据对象
fpmsBaseInfo: {
...this.basicIfo.fpmsBaseInfo,
templateId // 将templateId字段添加到fpmsBaseInfo中
},
fpmsControlInfo: {
...this.props.productData.fpmsControlInfo,
penaltyType: {
[this.props.productData.fpmsControlInfo.penaltyType]: true
}
},
fpmsPeriodPublicationInfo: this.props.productData.fpmsPeriodPublicationInfo,
fpmsFileInfo: this.props.productData.fpmsFileInfo,
limitCode: this.props.productData.limitCode
};
this.props.productInput(values);
}
}
以上修改会将 templateId
字段传递给 basicIfo
数据,并在最后的处理函数中正确使用该值。请注意修改代码时的上下文关系,确保正确引用变量和对象属性。
内容由零声教学AI助手提供,问题来源于学员提问