中州养老图片重复

修改project文件夹中的DialogForm.vue

原来的:

watch监听器中,监听了props.data,并在其变化时将formData.value设置为val,同时将图片对象obj推入photoFile.value数组。如果props.data被多次触发或者其值未按预期改变,可能会导致相同的图片被重复添加到photoFile数组中。

handleSuccess方法中,更新了photoFile.value[0]urlresponse.url,但是没有从photoFile.value中移除旧的文件对象,如果上传同一个文件,那么数组中就会有两个相同的图片对象。

watch(
  () => props.data,
  (val) => {
    formData.value = val;
    const obj = {
      url: val.image
    };
    photoFile.value.push(obj); // 这里可能在val未改变image的情况下重复添加相同的图片
  }
)
const handleSuccess = (params) => {
  const photo = params.response.data;
  formData.value.image = photo;
  // 如果photoFile.value已经包含元素,应先清空或者替换,而不是直接修改
  photoFile.value[0].response.url = photo;
  photoFile.value[0].url = photo;
}

修改成:

1. 在添加新图片之前清空photoFile.value数组。

2. 在handleSuccess方法中,如果上传成功,则替换数组中的图片对象,而不是修改它。

watch(
  () => props.data,
  (val) => {
    formData.value = val;
    // 清空数组,防止重复添加
    photoFile.value = [];
    if (val.image) {
      const obj = {
        url: val.image
      };
      photoFile.value.push(obj);
    }
  }
)

const handleSuccess = (params) => {
  const photo = params.response.data;
  formData.value.image = photo;
  // 替换数组中的图片对象,而不是修改它
  photoFile.value = [{ url: photo, response: { url: photo } }];
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枕流y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值