1

我正在尝试创建一个表格,可以在其中直接在单元格中编辑数据。但是,我不明白如何做到这一点。我正在使用 Vue.js、Vuexy 和 vue-good-table 2.21.1。数据包含在 mediaPlanData 变量中并且是反应性的。该表已成功填充数据并且可以修改。但是,当我更改单元格中的数据时,此变量不会更改。我没有在文档 vue-good-table 中找到如何执行此操作。请告诉我如何才能达到预期的结果?

<vue-good-table
:columns="columns"
:rows="mediaPlanData"
:select-options="{
        enabled: true,
        selectOnCheckboxOnly: true, // only select when checkbox is clicked instead of the row
        selectionInfoClass: 'custom-class',
        selectionText: 'rows selected',
        clearSelectionText: 'clear',
        disableSelectInfo: true, // disable the select info panel on top
        selectAllByGroup: true, // when used in combination with a grouped table, add a checkbox in the header row to check/uncheck the entire group
        }"
@on-selected-rows-change="onRowClick"
>

<template slot="table-row" slot-scope="props">
    <span>
        <b-form-input v-model="props.row[props.column.field]"
                      type="text"
        ></b-form-input>
    </span>
</template>


</vue-good-table>

data() {
return {
    pageLength: 10,
    columns: [
        {
            label: 'Channel Code',
            field: 'channelCode',
        },
        {
            label: 'Product',
            field: 'product',
        }
    ],
    
    mediaPlanData: [] //[ {"channelCode": "P230", "product": "Test"}, {"channelCode": "P230", "product": "Test4"}, {"channelCode": "P230", "product": "Test45"}, {"channelCode": "Р230", "product": "Test2"}]
}
}
methods: {              
onRowClick(params) {
    console.log('onRowClick' + JSON.stringify(params))
    this.$toast({
        component: ToastificationContent,
        props: {
            title: `Hello user! You have clicked on row ${params.selectedRows.product}`,
            icon: 'UserIcon',
            variant: 'success',
        },
    })
}
}
4

1 回答 1

2

我已经解决了这个问题。添加到b-form-input

@change="changeCell(props.row[props.column.field], props.column.field, props.row.originalIndex)"

和加法

changeCell(changedData, column, row) {
            this.mediaPlanData[row][column] = changedData
        },
于 2021-04-29T12:41:07.557 回答