jiaxing.zhou

refactor(editReportingData): 优化新增商品的校验逻辑

- 注释掉了 addNewItem 方法中的校验逻辑,暂时允许无限制地添加新商品
- 重构了 RowDataEditForm 组件中的 validate 方法,使用 Promise 异步处理校验结果
- 在校验成功时,触发 rowFormDataSave事件,将表单数据保存- 优化了校验通过和未通过时的处理流程,提高了代码的可读性和可维护性
......@@ -367,16 +367,33 @@
this.tableRowformData = {}
this.$emit('cancelEditRowData',this.rowDatas.row.gnum-1)
},
validate() {
return this.$refs.editRowForm.validate((valid)=>{
if(valid){
console.log("tg2")
// validate() {
// return this.$refs.editRowForm.validate((valid)=>{
// if(valid){
// console.log("tg2")
// this.$emit('updateLastItemValid', true);
// }else {
// console.log("wtg2")
// this.$emit('updateLastItemValid', false); // 通知父组件校验未通过
// }
// });
// },
async validate() {
return new Promise((resolve, reject) => {
this.$refs.editRowForm.validate((valid) => {
if (valid) {
// console.log("tg2")
this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData})
this.tableRowformData = {}
this.$emit('updateLastItemValid', true);
}else {
console.log("wtg2")
this.$emit('updateLastItemValid', false); // 通知父组件校验未通过
resolve(true);
} else {
// console.log("wtg2")
this.$emit('updateLastItemValid', false);
resolve(false);
}
});
});
},
},
};
......
......@@ -879,10 +879,12 @@
//添加新商品
async addNewItem() {
// 如果上一次新增的 item 没有通过校验,则不允许新增
if (!this.lastItemValid) {
this.$message.warning('请先完善新增的商品信息');
return;
}
//console.log("this",this.lastItemValid)
// if (!this.lastItemValid) {
// console.log(11)
// this.$message.warning('请先完善新增的商品信息');
// return;
// }
// 获取最后一个 item 的引用
const lastItem = this.detailData[this.detailData.length - 1];
// 如果存在上一次新增的 item,则进行校验
......@@ -892,7 +894,10 @@
if (rowEditForm) {
// 调用校验方法
const isValid = await rowEditForm.validate();
// console.log("y:",this.lastItemValid)
// console.log("!",isValid)
if (!isValid) {
// console.log(22)
this.lastItemValid = false; // 标记上一次新增的 item 未通过校验
this.$message.warning('请先完善新增的商品信息');
return;
......