在用vxe-table做表格,用到了表单代理。是一个下拉选择,但是发现获取不到他的默认值。
仔细对比了插槽,字段field名称,都没有错。tableProxy也开启了表单代理。data里设置了category默认为1,但是在进入页面的时候并没有给你选中。因为之前做表单代理都是些输入框,所以并没有发现问题。
在官网文档仔细看后发现,使用了下拉框的表单代理,都是不会赋初始值的。解决办法就是在tableProxy里自己给form赋初始值。否则直接绑定this.tableForm.data的数据也可以,就不使用他提供的form代理。
代码如下:
tableProxy: {
autoLoad: true, // 是否自动加载查询数据
seq: true, // 启用动态序号代理
sort: true, // 启用排序代理
filter: true, // 启用筛选代理
form: true, // 启用表单代理
props: {
result: 'results',
total: 'count'
},
ajax: {
// 任何支持 Promise API 的库都可以对接(fetch、jquery、axios、xe-ajax)
query: ({ page, sort, filters, form }) => {
console.log('form', form)
// =====给表单项赋初始值======
if (form.category === undefined || form.category === null) {
form.category = 1
}
this.listLoading = true
return checkoutVouherRuleList({ is_checkout: false, category: form.category })
.then((res) => {
console.log(res)
this.listLoading = false
return res.results
})
.catch(() => {
this.listLoading = false
})
}
}
},