<el-button @click="addToSelectedData" style="height: 40px;" :clearable="false">添加</el-button> </div> <el-table :data="dialogObj.children"> <el-table-column prop="name" label="分项"></el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> addToSelectedData() { // 将选择好的信息添加到数组中 this.dialogObj.children.push({ name: this.dialogObj.indexName, }) console.log(this.dialogObj) }, deleteSelectedData(index) { this.selectedData.splice(index, 1) },添加之后怎么去重
时间: 2023-07-16 08:17:02 浏览: 82
你可以使用 JavaScript 中的 Set 数据结构进行去重。在添加数据时,先将所有已存在的数据组成一个 Set,然后将新加入的数据与 Set 进行比较,如果 Set 中已存在该数据,则不再添加;否则将新数据添加到 Set 中,并将 Set 转换为数组即可。
具体代码实现可以参考以下示例:
```
addToSelectedData() {
const selectedSet = new Set(this.dialogObj.children.map(item => item.name));
if (!selectedSet.has(this.dialogObj.indexName)) {
this.dialogObj.children.push({ name: this.dialogObj.indexName });
}
},
```
相关问题
<el-dialog :title="formEditTitle" :visible.sync="dialogEdittVisible" width="700px"> <div style="display: flex; justify-content: center; height: 40px;"> <span style="align-self: center;">总量:</span> <el-input id="input-box" @input="forceUpdate" placeholder="在这里输入内容" v-model="dialogObj.name" style="width: 250px;"></el-input> <div class="radiobox" style="flex: 1; height: 100px; text-align: center; margin-left: 20px;"> <el-form> <span>分项:</span> <el-select filterable v-model="dialogObj.indexName" placeholder="请选择" @change="showSelectedValue" style="flex: 1; height: 100px; text-align: center;"> <el-option v-for="(itemOne, item) in templateList" :key="item" :label="itemOne" :value="itemOne" > </el-option> </el-select> </el-form> </div> <el-button @click="addToSelectedData" style="height: 40px;" :clearable="false">添加</el-button> </div> <el-table :data="dialogObj.children"> <el-table-column prop="name" label="分项"></el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button @click="deleteSelectedData(scope.$index)">删除</el-button> </template>怎么实现点击添加之后刷新表单页面
你可以在 `addToSelectedData` 方法的最后调用一个重新获取数据的方法,例如:
```javascript
addToSelectedData() {
// 添加数据的代码
this.fetchData() // 重新获取数据
},
fetchData() {
// 获取数据的代码
}
```
这样,在点击添加按钮之后,会先执行添加数据的逻辑,然后再重新获取数据,并且更新表单页面。
<el-button @click="addToSelectedData" style="height: 40px;" :clearable="false">添加</el-button> </div> <el-table :data="dialogObj.children"> <el-table-column prop="name" label="分项"></el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button @click="deleteSelectedData(scope.$index)">删除</el-button> deleteSelectedData(index) { this.selectedData.splice(index, 1) },点击删除按钮为什么无法删除
这段代码缺少一些关键信息,不过从你提供的代码中可以看出,你在删除表格数据时只是从 `selectedData` 中删除了对应的数据,但是并没有从 `dialogObj.children` 中删除相应的数据。因此,当你再次渲染表格时,该数据仍然存在,导致删除按钮无法正确删除数据。
你需要在 `deleteSelectedData` 方法中同时删除 `selectedData` 和 `dialogObj.children` 中的数据。可以尝试修改代码如下:
```
deleteSelectedData(index) {
this.selectedData.splice(index, 1)
this.dialogObj.children.splice(index, 1)
},
```
这样就可以同时删除 `selectedData` 和 `dialogObj.children` 中的数据,保证删除操作的正确性。
阅读全文