1. 程式人生 > 實用技巧 >Element + 列表增刪改查

Element + 列表增刪改查

Table.vue

<template>
  <div class="main">
    <el-table
      :data="tableData"
      style="width: 100%">

      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label
="姓名" width="180"> </el-table-column> <el-table-column prop="address" label="地址"> </el-table-column> <el-table-column label="編輯"> <template slot-scope="scope"><!-- slot-scope="scope" 這裡取到當前單元格 --> <el-button type="primary" icon="el-icon-edit" @click="toUpdate(scope)" circle></el-button> </template> </el-table-column> <el-table-column label
="下拉選單編輯"> <template slot-scope="scope"> <!-- slot-scope="scope" 這裡取到當前單元格 --> <el-dropdown size="medium" split-button type="primary" @command="handleCommand"> 更多 <el-dropdown-menu slot="dropdown"> <el-dropdown-item command="add">增加</el-dropdown-item> <el-dropdown-item command="delete" @click.native="doDelete(scope)" >刪除</el-dropdown-item> <el-dropdown-item command="edit" @click.native="doEdit(scope)">編輯{{scope.$index}}</el-dropdown-item> <el-dropdown-item command="sheng">上升</el-dropdown-item><!-- scope.row 這裡取到當前單元格text值 --> <el-dropdown-item command="jiang">下降</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </template> </el-table-column> </el-table> <!-- 模態框--> <el-dialog :title="title" :visible.sync="dialogVisible" @close="closeDialog('dialogForm')" width="30%" height="50%"> <el-form :model="dialogForm" ref="dialogForm"> <el-form-item label="類別名稱" prop="name"> <el-input v-model="dialogForm.name" clearable></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">取 消</el-button> <el-button type="primary" @click="saveAddForm('dialogForm')">確 定</el-button> </div> </el-dialog> </div> </template> <script> import moment from
'moment' export default { data() { return { tableData: [{ date: '2016-05-02', name: '王小虎', address: '上海市普陀區金沙江路 1518 弄' }, { date: '2016-05-04', name: '王小虎', address: '上海市普陀區金沙江路 1517 弄' }, { date: '2016-05-01', name: '王小虎', address: '上海市普陀區金沙江路 1519 弄' }, { date: '2016-05-03', name: '王小虎', address: '上海市普陀區金沙江路 1516 弄' }], dialogForm: { index: 0, name: '' }, dialogVisible: false, title: "事件修改", } }, methods:{ toUpdate(scope){ console.log('scope'+scope) }, handleEdit(index, row){ console.log('index'+index,'row'+row) }, handleCommand(command) { // command 判斷點選的是下拉選單哪一個按鈕 // 但是這裡並不知道點選的事哪一行 //this.$message('click on item ' + command); if (command==='add') { this.tableData.push({ date: moment().format("YYYY-MM-DD"), name: '王小虎', address: '上海市普陀區金沙江路 1516 弄' }) } else if (command==='delete') { console.log("command==='delete'")//不允許空方法 } }, doDelete(scope){ //console.log(scope.$index) this.tableData.splice(scope.$index, 1) }, doEdit(scope){ console.log(scope.$index,scope.row.name) this.dialogVisible = true this.dialogForm={ index: scope.$index, name: scope.row.name } }, saveAddForm(){ this.tableData[this.dialogForm.index].name = this.dialogForm.name; this.dialogVisible = false; }, closeDialog(){ this.dialogVisible = false; } } } </script>