情况
表单中为了直接传JSON数据,使用了上传图片时传到OSS再获取后台返回的地址保存在表单的一个操作,返回一个数据保存位置相对路径,再将这个路径保存好传给后端,后端再拼接成绝对路径传给前端渲染:http://xxxx-img.oss-cn-shenzhen.aliyuncs.com/+相对路径
问题
由于后台返回给前端保存渲染的数据是绝对路径,但后台接收的是相对路径,在编辑表格数据时如果按editForm.xxx=row.xxx的形式去赋值,如果重新上传图片则不会出现此问题,如果没有重新上传会将绝对路径传给后端,后端再拼接就得到了:http://xxxx-img.oss-cn-shenzhen.aliyuncs.com/http://xxxx-img.oss-cn-shenzhen.aliyuncs.com/+相对路径,编辑的越多次越离谱
解决方案
1.编辑信息时把row中的前缀去掉再赋值到表单
// 编辑信息
edit(row) {
...
let res = row.navigationImg.replace(
"http://xxxx-img.oss-cn-shenzhen.aliyuncs.com/",
""
);
this.editForm.navigationImg = res;
...
},
2.和后端沟通让他不要从后台拼接,传一个相对路径过去也传一个相对路径回来,然后再渲染表格内容的时候用:formatter属性拼接字符串