当用户点击“登记”按钮时,触发了一系列的操作和执行流程


当用户点击“登记”按钮时,触发了一系列的操作和执行流程。根据你提供的代码,以下是点击“登记”按钮后发生的事情的详细步骤和执行流程:

在这里插入图片描述
在这里插入图片描述

1. 触发 handleAdd 方法

在模板部分,<el-button type="danger" size="mini" @click="handleAdd">登记</el-button> 绑定了 @click 事件,当用户点击“登记”按钮时,会调用 handleAdd 方法。

2. handleAdd 方法的实现

public handleAdd() {
  this.aveForm = Object.assign({}, {});
  this.aveFormVis = true;
  this.operateType = 'add';
}
详细解释:
  • 初始化表单数据this.aveForm = Object.assign({}, {}); 创建了一个空对象并赋值给 aveForm,用于存储新条目的表单数据。
  • 显示对话框this.aveFormVis = true;aveFormVis 设置为 true,这将使 AveForm 对话框组件变得可见。
  • 设置操作类型this.operateType = 'add'; 设置 operateType'add',表示当前操作是添加新条目。

3. AveForm 对话框显示

AveForm 组件的 visible 属性绑定到了 aveFormVis,因此当 aveFormVis 变为 true 时,AveForm 对话框会显示出来。

4. 初始化 AveForm 表单

AveForm 组件中,watchValue 监听器会监听 value 的变化,并在 value 更新时初始化表单数据:

@Watch('value')
watchValue(v: any) {
  this.$nextTick(() => {
    this.getProducts();
    this.form = { ...v };
  });
}
详细解释:
  • 获取产品列表this.getProducts(); 异步调用 productAll API 获取所有产品列表,并更新 productList
  • 初始化表单this.form = { ...v }; 将传递给 AveFormvalue(即 aveForm)复制到 form 中。由于此时 value 是一个空对象,因此 form 也会是一个空对象,准备好接收用户输入。

5. 用户填写表单

用户可以在 AveForm 对话框中填写表单字段,如客户昵称、疑点描述、图片附件、涉及产品和批次号。

6. 提交表单

当用户填写完表单并点击“提交”按钮时,会触发 handleSubmit 方法:

private handleSubmit() {
  if (!this.form.productId || this.form.productId === ' ') {
    this.$message.error('请选择产品');
    return;
  }
  this.save();
}
详细解释:
  • 验证产品选择:首先检查 form.productId 是否为空或为空字符串。如果为空,弹出错误提示“请选择产品”,并阻止提交。
  • 调用保存方法:如果验证通过,则调用 save 方法保存数据。

7. 保存数据

save 方法负责将表单数据发送到服务器:

private async save() {
  const data = this.form;
  const res: any = await esave(data);
  if (res?.code === 0) {
    this.$emit('close', true);
  }
}
详细解释:
  • 准备数据:将 form 中的数据赋值给 data
  • 调用 API:异步调用 esave API,将 data 发送到服务器进行保存。
  • 处理响应:如果服务器返回的状态码为 0(表示成功),则通过 $emit('close', true) 通知父组件关闭对话框,并刷新列表。

8. 关闭对话框

在父组件中,onAveFormClose 方法会监听 AveForm 组件发出的 close 事件:

public onAveFormClose(refresh: any) {
  this.aveFormVis = false;
  refresh && this.getList();
}
详细解释:
  • 隐藏对话框this.aveFormVis = false;aveFormVis 设置为 false,隐藏 AveForm 对话框。
  • 刷新列表:如果 refreshtrue,则调用 getList 方法重新获取最新的列表数据,确保界面上显示的是最新的信息。

总结

点击“登记”按钮后的完整执行流程如下:

  1. 触发 handleAdd 方法:初始化表单数据,显示 AveForm 对话框,并设置操作类型为“添加”。
  2. 初始化 AveForm 表单:获取产品列表并准备好接收用户输入。
  3. 用户填写表单:用户在对话框中填写必要的信息。
  4. 提交表单:用户点击“提交”按钮,验证表单并调用保存方法。
  5. 保存数据:将表单数据发送到服务器进行保存。
  6. 关闭对话框:保存成功后,关闭对话框并刷新列表,确保界面上显示最新的数据。

这个流程确保了用户可以顺利地添加新条目,并且界面上的数据始终保持最新状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值