簡體   English   中英

Vuetify DataTable 與 laravel Inertia JS

[英]Vuetify DataTable with laravel Inertia JS

請幫助我,我是慣性新手,我打算用 vuetify 數據表創建用戶 crud 頁面,但我被困在這里。

我的問題是如何將用戶數據從后端分配到數據表中,因為 vuetify 數據表中沒有 tr/td 標簽?

我已經嘗試在互聯網上搜索,但大部分教程都使用 tailwindcss。

 < script > export default { data: () => ({ dialog: false, dialogDelete: false, headers: [{ text: 'Name', align: 'start', sortable: false, value: 'name', }, { text: 'Email', value: 'email' }, { text: 'Roles', value: 'roles' }, { text: 'Actions', value: 'actions', sortable: false }, ], users: [], editedIndex: -1, editedItem: { name: '', email: '', roles: '', }, defaultItem: { name: '', email: '', roles: '', }, }), computed: { formTitle() { return this.editedIndex === -1? 'New User': 'Edit User' }, }, watch: { dialog(val) { val || this.close() }, dialogDelete(val) { val || this.closeDelete() }, }, created() { this.initialize() }, methods: { initialize() { this.users = users }, editItem(item) { this.editedIndex = this.users.indexOf(item) this.editedItem = Object.assign({}, item) this.dialog = true }, deleteItem(item) { this.editedIndex = this.users.indexOf(item) this.editedItem = Object.assign({}, item) this.dialogDelete = true }, deleteItemConfirm() { this.users.splice(this.editedIndex, 1) this.closeDelete() }, close() { this.dialog = false this.$nextTick(() => { this.editedItem = Object.assign({}, this.defaultItem) this.editedIndex = -1 }) }, closeDelete() { this.dialogDelete = false this.$nextTick(() => { this.editedItem = Object.assign({}, this.defaultItem) this.editedIndex = -1 }) }, create() { this.$inertia.visit(route('organizations.create')) }, edit(_organisation) { this.$inertia.visit(route('organizations.edit', _organisation)) }, } } < /script>
 <template> <v-data-table:headers="headers":items="users" sort-by="name" class="elevation-1" > <template v-slot:top> <v-toolbar flat > <v-toolbar-title>My CRUD</v-toolbar-title> <v-divider class="mx-4" inset vertical ></v-divider> <v-spacer></v-spacer> <v-dialog v-model="dialog" max-width="500px" > <template v-slot:activator="{ on, attrs }"> <v-btn color="primary" dark class="mb-2" v-bind="attrs" v-on="on" > New User </v-btn> </template> <v-card> <v-card-title> <span class="headline">{{ formTitle }}</span> </v-card-title> <v-card-text> <v-container> <v-row> <v-col cols="12" sm="6" md="4"> <v-text-field v-model="editedItem.name" label="Name"></v-text-field> </v-col> <v-col cols="12" sm="6" md="4"> <v-text-field v-model="editedItem.email" label="Email"></v-text-field> </v-col> <v-col cols="12" sm="6" md="4"> <v-text-field v-model="editedItem.Roles" label="Roles"></v-text-field> </v-col> </v-row> </v-container> </v-card-text> <v-card-actions> <v-spacer></v-spacer> <v-btn color="blue darken-1" text @click="close"> Cancel </v-btn> <v-btn color="blue darken-1" text @click="save"> Save </v-btn> </v-card-actions> </v-card> </v-dialog> <v-dialog v-model="dialogDelete" max-width="500px"> <v-card> <v-card-title class="headline">Are you sure you want to delete this user?</v-card-title> <v-card-actions> <v-spacer></v-spacer> <v-btn color="blue darken-1" text @click="closeDelete">Cancel</v-btn> <v-btn color="blue darken-1" text @click="deleteItemConfirm">OK</v-btn> <v-spacer></v-spacer> </v-card-actions> </v-card> </v-dialog> </v-toolbar> </template> <template v-slot:item.actions="{ item }"> <v-icon small class="mr-2" @click="editItem(item)" > mdi-pencil </v-icon> <v-icon small @click="deleteItem(item)" > mdi-delete </v-icon> </template> <template v-slot:no-data> <v-btn color="primary" @click="initialize" > Reset </v-btn> </template> </v-data-table> </template>

您需要從data object 中刪除空users: []並通過props從后端接收用戶。

export default {
   props: ['users']
}

這樣,Inertia 會自動將傳遞給Inertia::render的數據綁定到您的頁面組件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM