我希望在在我勾选之后,可以获取我勾选的物资名称和单位,然后传进我的新增表格中,请问要怎么做?
我的表格代码如下:
table :data="stockList" style="height:430px;" border>
table-column type="selection" :reserve-selection="true"> table-column>
table-column prop="itemname" label="物资名称"> table-column>
table-column prop="numbers" label="物资数量"> table-column>
table-column prop="unit" label="物资单位"> table-column>
table>
参考GPT和自己的思路:您可以利用 Vue.js 中的计算属性来获取勾选的物资名称和单位,并将它们的值传递到新增表格中。以下是一种可能的解决方案:
computed: {
selectedItems() {
return this.stockList.filter(item => this.$refs.table.selection.includes(item))
.map(item => ({ name: item.itemname, unit: item.unit }));
}
}
<el-form :model="addedItem">
<el-form-item label="物资名称">
<el-input v-model="addedItem.name"></el-input>
</el-form-item>
<el-form-item label="物资单位">
<el-input v-model="addedItem.unit"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
methods: {
submitForm() {
this.addedItem.name = this.selectedItems[0].name;
this.addedItem.unit = this.selectedItems[0].unit;
}
}
请注意,如果有多个物资被勾选,上面的代码只会选取第一个物资的名称和单位。如果需要把全部勾选的物资都写入新增表格中,您可以在计算属性中修改它的返回值,使其返回一个包含所有勾选物资的数组,然后在 submitForm 中遍历该数组,逐个将它们写入到新增表格的对象中。
如果你想在勾选后获取勾选的物资名称和单位,并传递到新增表格中,可以使用以下步骤:
data() {
return {
// 定义一个数组,用于保存勾选的物资信息
selectedItems: []
}
}
<el-table :data="stockList" style="height:430px;" border @selection-change="handleSelectionChange">
<el-table-column type="selection" :reserve-selection="true"></el-table-column>
<el-table-column prop="itemname" label="物资名称"></el-table-column>
<el-table-column prop="numbers" label="物资数量"></el-table-column>
<el-table-column prop="unit" label="物资单位"></el-table-column>
</el-table>
methods: {
handleSelectionChange(selection) {
// 获取勾选的物资名称和单位,保存到 selectedItems 数组中
this.selectedItems = selection.map(item => ({
name: item.itemname,
unit: item.unit
}))
}
}
在 handleSelectionChange 方法中,通过 map 方法将勾选的物资信息转换成一个包含名称和单位的对象,并保存到 selectedItems 数组中。
<el-table :data="newItems" style="height:430px;" border>
<el-table-column prop="name" label="物资名称"></el-table-column>
<el-table-column prop="quantity" label="物资数量"></el-table-column>
<el-table-column prop="unit" label="物资单位"></el-table-column>
</el-table>
methods: {
addNewItems() {
// 将 selectedItems 数组中的物资信息添加到新增表格中
this.selectedItems.forEach(item => {
this.newItems.push({
name: item.name,
quantity: 0, // 设置默认数量为 0
unit: item.unit
})
})
// 清空 selectedItems 数组
this.selectedItems = []
}
}
在 addNewItems 方法中,通过遍历 selectedItems 数组,将其中的物资信息添加到新增表格中,并将 selectedItems 数组清空。需要注意的是,添加物资时可以设置默认数量为 0。
这样,在勾选物资后,点击添加按钮即可将勾选的物资信息添加到新增表格中。