之前做的添加页面,关联公司字段显示的功能
但是我发现修改车间页面这个字段,显示的companyId的值。
更令我惊讶的,当我在页面初始化的时候,先点击新增按钮,然后再点击修改按钮,那么修改页面中的隶属公司,就会显示公司的全称,如下:
这是怎么一回事呢,首先看代码:
先看 修改按钮 对应的方法
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const workshopId = row.workshopId || this.ids
getWorkshop(workshopId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改车间";
});
},
它并没有初始化companyOptions ,因此会显示response.data,而data里放的是companyId
再看 添加按钮 对应的方法
/** 新增按钮操作 */
handleAdd() {
this.reset();
getWorkshop().then(response => {
this.companyOptions = response.companyOptions;
this.open = true;
this.title = "添加车间";
});
},
添加按钮,初始化了companyOptions ,里面是有值得。
(添加按钮和修改按钮对应的是同一个页面,只不过修改页面填充了form数据。this.form = response.data
)
那么为什么先点击添加按钮,再点击修改按钮,修改页面就会出现数据呢。
很简单,那是因为添加按钮点击后,this.companyOptions被初始化,修改页面自然也就获取到了。
这个BUG修复非常简单:
只要在修改页面添加对应的初始化方法即可。
修改如下:
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const workshopId = row.workshopId || this.ids
getWorkshop(workshopId).then(response => {
//初始化companyOptions
this.companyOptions = response.companyOptions;
this.form = response.data;
this.open = true;
this.title = "修改车间";
});
},